2011-03-29 62 views
2

我有一些PHP會抓取喜歡的,並分享我的網頁計數。 (URL是當然只是一個例子。)PHP「if」問題

$url='http://mashable.com/2011/03/25/internet-music-piracy-study/'; 
$furl = "https://api.facebook.com/method/fql.query?query=select%20total_count%20from%20link_stat%20where%20url=%27".$url."%27&format=xml"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $furl); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$fbcount = curl_exec($ch); 
curl_close($ch); 

然後我想用我的第一個通用的Facebook圖標,如果我數得到的回覆是0,否則我得到的號碼。基本上,如果人們不喜歡一個頁面,我不想要一個大胖子。

<div class="burst-fb"><span><?php if ($fbcount < 1) {echo 'logo stuff';} else {echo $fbcount;}?></span></div> 

問題是,它不工作。我知道我必須在這裏忽略一些基本的東西。

+0

你回顯出來的'$ fbcount'變量,看它的返回值是什麼? – Prisoner 2011-03-29 17:30:54

+0

這是哪個錯誤?你安裝curl模塊的PHP? – 2011-03-29 17:34:25

回答

0

來自facebook api(以及因此在$ fbcount中的內容)的響應是XML字符串,而不是數字。你需要解析迴應。對不起;)。看看simpleXML。 編輯: 複製並粘貼網址(https://api.facebook.com/method/fql.query?query=select%20total_count%20from%20link_stat%20where%20url=%27http://mashable.com/2011/03/25/internet-music-piracy-study/%27&format=xml)到您的瀏覽器,看看你會得到什麼。 下面應該出現在你的瀏覽器:

<fql_query_response list="true"> 
    <link_stat> 
     <total_count>213</total_count> 
    </link_stat> 
</fql_query_response> 
+0

Bingo。那就是訣竅。我沒有看到信息來源,只是看到我收到了一個號碼。所以...'$ xml = simplexml_load_string($ data); $ fbcount = $ xml-> link_stat [0] - > total_count; print $ fbcount;' – 2011-03-29 18:13:18

+0

很高興提供幫助。 :) – user578368 2011-03-29 18:21:33

3

從PHP手冊:

Returns TRUE on success or FALSE on failure. 
However, if the CURLOPT_RETURNTRANSFER option is set, 
it will return the result on success, FALSE on failure. 

所以,檢查FALSE使用===與==操作符,並檢查了零,而不是1,如果你有興趣爲零!

您也可以使用var_dump來查看$ fbcount真正包含的內容。

1

請試試看$fbcount的內容,看看它包含什麼。如果它不是一個數字,那麼你的條件語句將不起作用。

var_dump($fbcount); 

嘗試這一權利curl_close($ch);後,它可能包含一個錯誤,你可以用它來調試你的捲曲操作。

+0

我得到:string(247)「0」 – 2011-03-29 17:43:02