使用this帖子和Tumblr API,我试图在我的网站上嵌入最新博客条目的标题。
出于某种原因,我认为这将是一个很好的简单代码,但它返回空。我错过了一些明显的东西吗?
// Contents of includes/latest_blog.php
<?php
$request_url = 'http://###NAME###.tumblr.com/api/read?start=0&num=1';
$xml = simplexml_load_file($request_url);
$title = $xml->posts->post->{‘regular-title’};
$link = $xml->posts->post[‘url’];
echo 'Latest blog entry: <a href="'.$link.'">'.$title.'</a>';
?>
网站:
<p class="blog_title"><?php include('includes/latest_blog.php'); ?></p>
谢谢!
答案 0 :(得分:2)
实际上代码很好,只是你在‘regular-title’
中使用花哨的Unicode引号而不是'regular-title'
中的ASCII单引号。
不正确:
$title = $xml->posts->post->{‘regular-title’};
$link = $xml->posts->post[‘url’];
正确:
$title = $xml->posts->post->{'regular-title'};
$link = $xml->posts->post['url'];
出于某种原因,您一定错过了错误消息,因此确保您在测试新代码时看到所有错误:
ini_set('display_errors', true);
error_reporting(-1);
答案 1 :(得分:1)
你在正确的路上。这是代码(它可以工作,但我找不到工作的解决方案,没有foreach),但无论如何你应该记住tittle是一个可选字段,它可能是空字符串,所以你需要在构建之前检查它链接标记。
$request_url = 'http://YOURNAME.tumblr.com/api/read?start=0&num=1';
$xml = simplexml_load_file($request_url);
$posts = $xml->xpath("/tumblr/posts/post");
foreach($posts as $post) {
$url = $post['url-with-slug'];
$tittle = $post->{'regular-title'};
echo '<a href="'.$url.'">'.$tittle.'</a>';
}