2011-03-01 65 views
1

使用this後和Tumblr API,我試圖嵌入任何最新的博客條目在我的網站上的標題。使用API​​和PHP獲取Tumblr發佈標題?

出於某種原因,我認爲這將是一個不錯的簡單代碼,但它會返回空白。我錯過了明顯的東西嗎?

// 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

其實代碼是好的,它只是你用花哨的Unicode引號作爲‘regular-title’代替ASCII單引號作爲'regular-title'

錯誤:

$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

你在正確的路上。這裏是代碼(它工作,但我找不到工作的解決方案,使其無需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>'; 
}