使用API​​&获取Tumblr帖子标题PHP?

时间:2011-03-01 23:37:35

标签: php api simplexml tumblr

使用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>

谢谢!

2 个答案:

答案 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>';
}