2011-10-27 6 views
-4

私は現在このコードを持っています。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オブジェクト([@attributes] =>配列([バージョン] => 0.3)[タイトル] => Gmailに実行したときに、私は次のような結果を得ます - あなたのGmail受信箱の新しいメッセージ=> 1 [link] => SimpleXMLElementオブジェクト([@attributes] =>配列([rel] => alternate [href] =>http://mail.google.com/mail [ SimpleXMLElementオブジェクト([title] => SUBJECT [link] => SimpleXMLElementオブジェクト([@attributes] => text/html))[修正] => 2011-10-27T20:12:38Z [ > Array([rel] => alternate [href] => LINK [type] => text/html))[修正] => 2011-10-26T1タグ:gmail.google.com、2004:1383746934228011210 [著者] => SimpleXMLElementオブジェクト([name] => Webs [5]:45:11Z [発行日] => 2011年10月26日15時45分11秒[電子メール] => EMAIL)))

結果はなど、 "にSimpleXMLElementオブジェクト" を表示し、のみなど、実際の役に立つ情報(件名、メールの内容、日付を表示しないように、私はそれをしたい)

私はstr_replaceを使用しようとしましたが、動作しません。あなたがXMLの形式に応じて、上記にいくつかの余分なパスを追加する必要があるかもしれません

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

+3

-1この質問については、質問には研究努力が表示されません。 @ 01jayss - print_rはドキュメントに書かれているとおりに*動作します*。あなたが望むことをしていない場合は、おそらく別の機能が必要です。 – Farray

+2

あなたのバニラアイスクリーム(print_r出力)がステーキ(あなたのXMLオブジェクト)のようなものを味わっていないということは、Milliwaysを含む宇宙のすべてのレストランからあなたを笑ってしまうことになります。 –

答えて

1

のようなものを試してみてください。

また、同様に

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 
) 
0

だけあなたに人間が読める形式の出力が得られます()しますprint_rを使用します。 XMLやJSONに変換して、必要に応じてさらにコンプライアンスすることができます。

jsonに変換してみます。

$json = json_encode($xml); 
echo $json;