我对PHP相当陌生,我设法在我的网站上获得了tumblr帖子。但只有标题和正文。
1.)为什么我不能抓住日期?2.) 如何浏览所有标签并导出它们?
这是我的代码:
<?php
ini_set('display_errors', true);
error_reporting(-1);
$request_url = 'http://cedricfjacob.tumblr.com/api/read?type=post&start=0&num=10';
$xml = simplexml_load_file($request_url);
$posts = $xml->xpath("/tumblr/posts/post");
foreach($posts as $post) {
$title = $post->{'regular-title'};
$post = $post->{'regular-body'};
$tag = $post->{'tag'};
$date = $post['date'];
echo '<div class="title">'.$title.'</div>';
echo '<div class="date">'.$date.'</div>';
echo '<div class="tags">'.$tag.'</div>';
echo '<div class="post">'.$post.'</div>';
}?>
要查看 XML,请访问:
https://cedricfjacob.tumblr.com/api/read?type=post&start=0&num=10#=
谢谢你们。
发生这种情况有两个原因:
-
有了
$post = $post->{'regular-body'};
,你就可以写出$post
值。它不再是你所期望的。 -
第二个 - 属性
$post['date']
是一个SimpleXMLElement
对象。要获取它的字符串值 - 例如使用strval
或(string)
类型转换。
最后:
foreach($posts as $post) {
$title = $post->{'regular-title'};
$post_body = $post->{'regular-body'}; // change here
$tag = $post->{'tag'};
$date = strval($post['date']); // change here
echo '<div class="title">'.$title.'</div>';
echo '<div class="date">'.$date.'</div>';
echo '<div class="tags">'.$tag.'</div>';
echo '<div class="post">'.$post_body.'</div>'; // change here
}