我正在尝试读取tumblr提供的xml信息,以便从tumblr创建一种新闻源,但我很困难。
<?php
$request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
$xml = simplexml_load_file($request_url);
if (!$xml)
{
exit('Failed to retrieve data.');
}
else
{
foreach ($xml->posts[0] AS $post)
{
$title = $post->{'regular-title'};
$post = $post->{'regular-body'};
$small_post = substr($post,0,320);
echo .$title.;
echo '<p>'.$small_post.'</p>';
}
}
?>
一旦尝试通过节点,它总是会中断。所以基本上“tumblr-&gt; posts; .... ect”显示在我的html页面上。
我尝试将信息保存为本地xml文件。我尝试使用不同的方法来创建simplexml对象,比如将它作为一个字符串加载(可能是一个愚蠢的想法)。我仔细检查了我的虚拟主机运行PHP5。所以基本上,我坚持为什么这不起作用。
编辑:好的我尝试从我开始的地方改变(回到原来的方式,从tumblr开始只是另一种(实际上是愚蠢的)尝试修复它的方式。它仍然在第一次 - &gt;之后断开,所以在屏幕上显示“posts [0] AS $ post .... ect”。
这是我在PHP中做过的第一件事,所以可能有一些显而易见的东西,我应该预先设置或者其他东西。我不知道也找不到那样的东西。
答案 0 :(得分:0)
这应该有效:
<?php
$request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
$xml = simplexml_load_file($request_url);
if ( !$xml ){
exit('Failed to retrieve data.');
}else{
foreach ( $xml->posts[0] AS $post){
$title = $post->{'regular-title'};
$post = $post->{'regular-body'};
$small_post = substr($post,0,320);
echo $title;
echo '<p>'.$small_post.'</p>';
echo '<hr>';
}
}
答案 1 :(得分:0)
$xml->posts
会返回帖子节点,因此如果您要迭代帖子节点,您应该尝试使用$xml->posts->post
,这样您就可以能够遍历第一个帖子节点内的 post 节点。
同样,Needhi指出你不应该通过根节点( tumblr ),因为$xml
代表自己是根节点。 (所以我修正了我的答案)。
答案 2 :(得分:0)
First thing in you code is that you used root element that should not be used.
<?php
$request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
$xml = simplexml_load_file($request_url);
if (!$xml)
{
exit('Failed to retrieve data.');
}
else
{
foreach ($xml->posts->post as $post)
{
$title = $post->{'regular-title'};
$post = $post->{'regular-body'};
$small_post = substr($post,0,320);
echo .$title.;
echo '<p>'.$small_post.'</p>';
}
}
?>