rendered paste body<?php
$file = "configuration.xml";
$depth = array();
function xmlStart($parser, $name, $attrs) {
global $depth,$depths,$constant;
if ($depth[$parser] == 1) { unset($depths[2],$depths[3]); }
$depths[$depth[$parser]] = $name;
$depth[$parser]++;
}
function xmlChar($parser, $data) {
global $depths,$constant;
$data = trim($data);
if (!empty($data)) {
$depthMax = count($depths)-1;
for ($i=1; $i<=$depthMax; $i++) {
if ($i > 1) { $constantKey .= '_'; }
$constantKey .= $depths[$i];
}
$constant[$constantKey] = $data;
}
}
function xmlEnd($parser, $name) {
global $depth,$depths,$constant;
$depth[$parser]--;
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "xmlStart", "xmlEnd");
xml_set_character_data_handler($xml_parser, 'xmlChar');
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
foreach ($constant as $key => $value) {
define($key, $value);
}
print_r(get_defined_constants());
?>