我正在尝试获取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
)
)
知道如何改变这一点吗?多谢。
您需要将每个节点强制转换为一个字符串(它当前是一个 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;