以下代码无效,并出现以下错误:
Fatal error: Cannot redeclare class shareCount in /customers/8/4/5/WEBSITE.com/httpd.www/wp-content/themes/default/includes/share-count.php on line 2
loop.php(这是我的每个帖子的循环代码)
<?
require_once("counter/share-count.php");
$obj = new shareCount(get_permalink());
echo "Tweets: ".$obj->get_tweets();
echo "<br>Facebook: ".$obj->get_fb();
echo "<br>Google+: ".$obj->get_plusones();
?>
share-count.php(这是可根据请求执行的文件)
<?
class shareCount
{
private $url, $timeout;
function __construct($url, $timeout = 10)
{
$this->url = rawurlencode($url);
$this->timeout = $timeout;
}
function get_tweets()
{
$json_string = $this->file_get_contents_curl('http://urls.api.twitter.com/1/urls/count.json?url=' . $this->url);
$json = json_decode($json_string, true);
return isset($json['count']) ? intval($json['count']) : 0;
}
function get_fb()
{
$json_string = $this->file_get_contents_curl('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $this->url);
$json = json_decode($json_string, true);
return isset($json[0]['total_count']) ? intval($json[0]['total_count']) : 0;
}
function get_plusones()
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . rawurldecode($this->url) . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-type: application/json'
));
$curl_results = curl_exec($curl);
curl_close($curl);
$json = json_decode($curl_results, true);
return isset($json[0]['result']['metadata']['globalCounts']['count']) ? intval($json[0]['result']['metadata']['globalCounts']['count']) : 0;
}
private function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
$cont = curl_exec($ch);
if (curl_error($ch)) {
die(curl_error($ch));
}
return $cont;
}
}
?>
答案 0 :(得分:0)
我没有找到错误,但你可以将require_once语句移到循环之外。这可能有所帮助。
答案 1 :(得分:0)
可能有另一个shareCount类在您共享的内容之外自动加载或加载
我会通过检查第1行share-count.php中的shareCount对象来进一步调试。
如果找不到答案,可以通过在share-count.php中执行以下操作,采取以下黑客行为对不同的潜在问题视而不见
<?php
if (class_exists('shareCount')) {
return;
}
class shareCount {
....
}