Я не могу прочитать массив
у меня есть следующий код
$xml = simplexml_load_string($xml_raw);
foreach ($xml->$user-agent as $ua):
print $ua->String;
endforeach;
и ничего не делает, per печатает это: Notice: Undefined переменная: user in /var/www/html/u.php on line 4
Notice: Use of undefined constant agent-assumed 'agent' in /var/www/html/u.php on line 4
Warning: Invalid argument supplied for foreach () in /var/www/html/u.php on line 4
1 answers
Проблема в том, что в XML тег имеет имя с дефисом (user-agent
), поэтому вы не можете получить доступ к этому значению, используя нотацию $xml->$user-agent
. В документации PHP Вы можете найти примечание об этом (мой перевод):
В XML-документе для доступа к элементам, содержащим символ, не разрешенный в номенклатуре PHP (например, дефисы), имя элемента должно быть заключено в кавычки и заключено в фигурные скобки.
Так что вы должны сделать это использовать нотацию с фигурными скобками, которая в вашем случае будет выглядеть примерно так:
$xml->{'user-agent'}