#php #xml
#php #xml
Вопрос:
В настоящее время у меня есть этот код.
<?php
$username = 'EMAIL ADDRESS';
$password = 'EMAIL ADDRESS';
$opts = array(
'http' => array(
'method' => 'GET',
'header' => sprintf("Authorization: Basic %srnUser-Agent: Foobar!", base64_encode($username.':'.$password))
)
);
$context = stream_context_create($opts);
libxml_set_streams_context($context);
$xml = new SimpleXMLElement(
"https://mail.google.com/mail/feed/atom",
null,
true);
print_r($xml);
?>
И я получаю следующие результаты при запуске PHP-кода
Объект SimpleXMLElement ( [@attributes] => Массив ( [version] => 0.3 ) [заголовок] => Gmail — Входящие для АДРЕСА ЭЛЕКТРОННОЙ ПОЧТЫ [слоган] => Новые сообщения в вашем почтовом ящике Gmail [полное количество] => 1 [ссылка] => Объект SimpleXMLElement ( [@attributes] =>Array ( [rel] => альтернативный [href] => http://mail.google.com/mail [тип] => текст / html ) ) [изменено] => 2011-10-27T20:12:38Z [запись] => Объект SimpleXMLElement ( [заголовок] => ТЕМА [ссылка] => Объект SimpleXMLElement ( [@атрибуты] => Массив ( [rel] => альтернативный [href] => ССЫЛКА [тип] => текст / html ) ) [модифицированный] => 2011-10-26T15:45:11Z [выпущенный] => 2011-10-26T15:45:11Z [id] => tag:gmail.google.com ,2004 год:1383746934228011210 [автор] => Объект SimpleXMLElement ( [имя] => Webs [email] => ЭЛЕКТРОННАЯ ПОЧТА ) ) )
Я хочу, чтобы в результатах не отображался «Объект SimpleXMLElement» и т. Д., А отображалась только фактическая полезная информация (тема, содержимое электронной почты, дата и т. Д.)
Я пытался использовать str_replace, но это не работает.
Комментарии:
1. -1 для этого вопроса. Вопрос не отображает никаких исследовательских усилий. @01jayss — print_r ведет себя точно так, как указано в документации . Если он не выполняет то, что вы хотите, возможно, вам нужна другая функция.
2. Жалобы на то, что ваше ванильное мороженое (вывод print_r) на вкус совсем не похоже на стейк (ваш XML-объект), вызывают смех во всех ресторанах вселенной, включая Milliways.
Ответ №1:
Попробуйте что-то вроде:
echo "Title: ".$xml->title.", tagline: ".$xml->tagline;
Возможно, вам потребуется добавить несколько дополнительных путей к приведенному выше в зависимости от формата XML.
Вы также можете попробовать
print_r((array)$xml);
как в:
<?php
$xml = "<x><title>Blah</title><fred>bob</fred></x>";
$s = simplexml_load_string($xml);
print_r((array)$s);
какие результаты:
Array
(
[title] => Blah
[fred] => bob
)
Ответ №2:
Использование print_r() даст вам только удобочитаемый вывод. Вы можете преобразовать его в XML или JSON, чтобы он больше соответствовал тому, что вы хотите.
Попробуйте преобразовать в json.
$json = json_encode($xml);
echo $json;