У меня есть XML-объект, созданный simplexml_load_string из следующего XML:
<?xml version="1.0" encoding="UTF-8"?>
<Website hasRead="true" hasWrite="true" key="managementui" terminalUserPin="" username="admin">
<Section key="organisation">
<Controller key="Sites">
<Function hasRead="false" hasWrite="false" key="estateLayout"/>
</Controller>
</Section>
<Section hasRead="false" hasWrite="false" key="settings"/>
</Website>
Сохраняется в переменной $xml
Когда я пытаюсь:
$xmlkey = $xml['key'];
var_dump($xmlkey);
Я ожидаю увидеть строку 'managementui'
но вместо этого получаю исключение. Журнал ошибок даже не показывает ничего. Что здесь происходит?
Просто пытаюсь изучить PHP после многих лет опыта Java. Когда люди говорят, что PHP "легкий", это должно быть какое-то странное использование слова "легко", о котором я раньше не знал :)
EDIT Теперь, извлекая неприятный бит кода в меньший php файл и запустив его из командной строки, кажется, что нет ничего плохого. Результат var_dump дает ожидаемый результат. Проблема в том, что он все еще вызывает ошибку в производственном коде. Есть ли ожидаемая разница в поведении между запуском на commnad-line и в Интернете (на apache)?
Работает на меня.
Вы загружаете xml следующим образом:
$string = '<?xml version="1.0" encoding="UTF-8"?>
<Website hasRead="true" hasWrite="true" key="managementui" terminalUserPin="" username="admin">
<Section key="organisation">
<Controller key="Sites">
<Function hasRead="false" hasWrite="false" key="estateLayout"/>
</Controller>
</Section>
<Section hasRead="false" hasWrite="false" key="settings"/>
</Website>';
$xml = simplexml_load_string($string);
echo $xml['key']; // managementui