Як замінити в масиві PHP?

У мене зараз є цей код.

<?php
$username = 'EMAIL ADDRESS';
$password = 'EMAIL ADDRESS';
$opts = array(
  'http' => array(
      'method'  => 'GET',
      'header'  => sprintf("Authorization: Basic %s\r\nUser-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 Object ( [@attributes] => Array ( [version] => 0.3 ) [title] => Gmail - Inbox for EMAIL ADDRESS [tagline] => New messages in your Gmail Inbox [fullcount] => 1 [link] => SimpleXMLElement Object ( [@attributes] => Array ( [rel] => alternate [href] => http://mail.google.com/mail [type] => text/html ) ) [modified] => 2011-10-27T20:12:38Z [entry] => SimpleXMLElement Object ( [title] => SUBJECT [link] => SimpleXMLElement Object ( [@attributes] => Array ( [rel] => alternate [href] => LINK [type] => text/html ) ) [modified] => 2011-10-26T15:45:11Z [issued] => 2011-10-26T15:45:11Z [id] => tag:gmail.google.com,2004:1383746934228011210 [author] => SimpleXMLElement Object ( [name] => Webs [email] => EMAIL ) ) )

Я хочу, щоб результати не відображали "SimpleXMLElement Object" тощо, і відображати лише фактичну корисну інформацію (тему, вміст електронної пошти, дату тощо)

Я спробував використовувати str_replace, але це не працює.

4
Скаржившись, що ваш ванільний морозиво (print_r вихід) не любить стейк (ваш XML-об'єкт) просто змушує вас сміятися з кожного ресторану всесвіту, включаючи Milliways.
додано Автор Marc B, джерело
-1 для цього питання. Питання не показує ніяких досліджень. @ 01jayss - print_r веде себе точно так, як це написано в документації . Якщо це не робить того, що ви хочете, можливо, вам потрібна інша функція.
додано Автор Farray, джерело

2 Відповіді

Спробуйте щось подібне:

echo "Title: ".$xml->title.", tagline: ".$xml->tagline;

Вам може знадобитися додати додаткові шляхи до вищесказаного залежно від формату XML.

Ви також можете спробувати

print_r((array)$xml);

як в:

<?php
$xml = "<title>Blah</title>bob";
$s =  simplexml_load_string($xml);
print_r((array)$s);

які виходи:

Array
(
    [title] => Blah
    [fred] => bob
)
1
додано

Використання print_r() дасть вам лише читабельний вихід. Ви можете перетворити його в xml або JSON, щоб більше відповідати тому, що ви хочете.

Спробуйте перетворити в json.

$json = json_encode($xml);
echo $json;
0
додано
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php