0

我已经经营一个摄影网站两年多了,并显示了关于每个图像页面在每个图像下方累积的 Facebook 喜欢和分享的数量的统计数据。

我用来获取此信息并将其放入变量的代码是这样的:

<?php   // Get Facebook Stats for Shares Likes Comments etc...
    $url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($this->canonicalurl);
    $xml = file_get_contents($url);
    $xml = simplexml_load_string($xml);
    $shares = number_format($xml->link_stat->share_count);
    $likes = number_format($xml->link_stat->like_count);
    $comments = number_format($xml->link_stat->comment_count);
    $total = number_format($xml->link_stat->total_count);
?>

一切都很好,直到今天我从 PHP5.2 切换到 5.4,突然所有的统计数据都不再出现。我已经阅读了一些内容,有些人说我需要设置 allow_url_fopen = 1 但已经设置好了。

有人说这可能与使用 file_get_contents 有关,但我没有得到具体结果。

谁能解释一下可能出了什么问题?如果这是罪魁祸首,是否有另一种方法可以在不使用 file_get_contents 的情况下编写上述内容?

谢谢!

4

1 回答 1

0

这里的错误是 number_format 需要是双精度,但 $xml 是一个对象。您可以删除 number_format,但我建议使用 intval。

<?php   // Get Facebook Stats for Shares Likes Comments etc...
    $url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($this->canonicalurl);
    $xml = file_get_contents($url);
    $xml = simplexml_load_string($xml);
    $shares = intval($xml->link_stat->share_count);
    $likes = intval($xml->link_stat->like_count);
    $comments = intval($xml->link_stat->comment_count);
    $total = intval($xml->link_stat->total_count);
?>
于 2013-11-02T20:57:06.973 回答