1

RSS フィードを取得し、ノード値を配列にプッシュしようとしています。私の次のphpコードは、多次元配列ではなく単一の配列を作成します。

 //parse rss
    $contents= file_get_contents('http://rss..');
    $xmlStr= simplexml_load_string($contents); 


    $array=array();
          foreach ($xmlStr->item as $node):

                  $array[]=$node->title;

                 echo '<pre>';
                    print_r($array);
                 echo '<pre>';


           endforeach;

しかし、私の配列出力は

Array
(
    [0] => SimpleXMLElement Object
        (
            [0] => App Store Bug Corrupts Binaries; Angry Birds Crash
        )

    [1] => SimpleXMLElement Object
        (
            [0] => In UK, HTC Defeats Apple's "Obvious" Slide Unlock Patent
        )

    [2] => SimpleXMLElement Object
        (
            [0] => WikiLeaks Begins Release of 2.5m Syrian Emails
        )

    [3] => SimpleXMLElement Object
        (
            [0] => A Critical Examination of Bill Gates' Philanthropic Record
        )

    [4] => SimpleXMLElement Object
        (
            [0] => Ask Slashdot: How Does Your Company Evaluate Your Performance?
        )

    [5] => SimpleXMLElement Object
        (
            [0] => UAV Cameras an Eye In the Sky For Adventurous Filmmakers
        )

    [6] => SimpleXMLElement Object
        (
            [0] => Copyrights To Reach Deep Space
        )

    [7] => SimpleXMLElement Object
        (
            [0] => FDA Approves HIV Home-Use Test Kit
        )

    [8] => SimpleXMLElement Object
        (
            [0] => Texas Scientists Regret Loss of Higgs Boson Quest
        )

    [9] => SimpleXMLElement Object
        (
            [0] => Icelandic MP Claims US Vendetta Against WikiLeaks
        )

    [10] => SimpleXMLElement Object
        (
            [0] => Microsoft's 'Cannibalistic Culture'
        )

    [11] => SimpleXMLElement Object
        (
            [0] => Android 4.1 Jelly Bean Review
        )

)

これを変更する方法はありますか?どうもありがとう。

4

1 に答える 1

2

単純な配列でプレーンな文字列を取得し、配列から最初の項目を取得するには、各ノードを文字列 (現在は SimpleXMLElement) にキャストする必要がありますtitle[]

SimpleXML__toString()はオブジェクトに魔法のメソッドを実装しているため、 に対してと同じように応答しprint_r()ますが、文字列として取得するには、そのようにキャストする必要があります。

foreach ($xmlStr->item as $node):
   // Cast the first array value to a string
   $array[] = (string)$node->title[0];
   echo '<pre>';
     print_r($array);
   echo '<pre>';
endforeach;
于 2012-07-05T15:45:12.573 に答える