2011-03-29 44 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