function ARC_sparql_parser::extract_bracket_data in Taxonomy import/export via XML 5.2
Same name and namespace in other branches
- 5 arc/ARC_sparql_parser.php \ARC_sparql_parser::extract_bracket_data()
- 6.2 arc/ARC_sparql_parser.php \ARC_sparql_parser::extract_bracket_data()
- 6 arc/ARC_sparql_parser.php \ARC_sparql_parser::extract_bracket_data()
8 calls to ARC_sparql_parser::extract_bracket_data()
- ARC_sparql_parser::parse_ArgList in arc/
ARC_sparql_parser.php - ARC_sparql_parser::parse_BrackettedExpression in arc/
ARC_sparql_parser.php - ARC_sparql_parser::parse_BuiltInCall in arc/
ARC_sparql_parser.php - ARC_sparql_parser::parse_Collection in arc/
ARC_sparql_parser.php - ARC_sparql_parser::parse_ConstructTemplate in arc/
ARC_sparql_parser.php
File
- arc/
ARC_sparql_parser.php, line 360
Class
Code
function extract_bracket_data($val = "") {
$chars = array(
"(" => ")",
"{" => "}",
"[" => "]",
);
if (($start_char = substr($val, 0, 1)) && ($end_char = $chars[$start_char])) {
$level = 1;
$val = substr($val, 1);
$val_length = strlen($val);
$cur_pos = 0;
while ($level != 0 && $cur_pos < $val_length) {
$next_end = strpos($val, $end_char, $cur_pos);
if ($next_end !== false) {
$next_start = strpos($val, $start_char, $cur_pos);
if ($next_start !== false && $next_start < $next_end) {
$cur_pos = $next_start + 1;
$level++;
}
else {
$cur_pos = $next_end + 1;
$level--;
}
}
else {
$cur_pos = $val_length;
$this->errors[] = "could not extract data in extract_bracket_data()";
}
}
return substr($val, 0, $cur_pos - 1);
}
else {
$this->errors[] = "could not extract data in extract_bracket_data()";
return false;
}
}