刚刚访问了友链中的朋友,发现有位朋友底部有个总访问量。。。于是博主就奈不住了。。。
直接上代码吧。。。
//Curl发送数据 function http_get($clurl, $ftoken, $ctime = 1, $timeout = 3) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $clurl."/?token=".$ftoken); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $ctime); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $result = curl_exec($ch); curl_close($ch); return $result; } //站点访问数量 global $clicki_vistors,$click_str;//定义全局变量,可以选择在主题中输出纯数字或者是组合好后的字串 $imem = new Memcache; $memc_stat = $imem->connect('127.0.0.1','11211');//可以去掉前面的变量 //echo '<!--'.$memc_stat.'-->';//Debug时用到的。。。 $clicki_vistors = $imem->get('c_vistors'); if ($clicki_vistors == FALSE) { /* do{ */ //如果网络不好,多次调用失败,可以将这个循环的注释去掉 $itmp = http_get('http://www.clicki.cn/api/summary','你的clicki的API Token'); $itmp = json_decode($itmp); $i+=1; /* }while($itmp == '' && $i<= 1 ); 根据情况修改循环条件*/ if ($itmp != '') {//判断是否调用失败,下行同 if ($itmp->success != FALSE) { $imem->add('c_vistors',$itmp->history->pageviews,FALSE,259200); //添加数据到Memcache中,并设置失效时间为3天,这里可以自己更改(单位为秒)! $clicki_vistors = $itmp->history->pageviews unset $itmp;//销毁Object $click_str = "\n<!--GET Remote Data-->".'总访问量:'.$clicki_vistors.'次'; //组合字串 }else{ $click_str = FALSE; } }else{ $click_str = FALSE; } }else{ $click_str = "\n<!--Form Memc-->总访问量:".($clicki_vistors).' 次'; //$imem->increment('c_vistors'); //去掉注释,每次被访问可以自动加1,这个视情况可以去掉 //博主就没去掉。。。不知道是啥原因,总是加2。。。。 }
保存到functions.php中
只要使用clicki和memcache,然后在主题中随便哪个位置global $clicki_vistors,$click_str; echo $clicki_vistors或者$click_str
如果不想使用Memcache的话,可以自行修改使用其它的缓存方法
转载请注明:神奇海域 » 使用第三方统计API和Memcache获取总访问量,并缓存