本文实例讲述了PHP获得网站访问统计信息类Compete API用法。分享给大家供大家参考。具体如下:
这里使用PHP获得网站访问统计信息类Compete API,Compete是一个专门用来统计网站信息的网站
PHP;">
'uv','visits' => 'vis','rank' => 'rank','pageViews' => 'pv','averageStay' => 'avgstay','visitsPerson' => 'vpp','pagesVisit' => 'ppv','attention' => 'att','dailyReach' => 'reachd','dailyAttention' => 'attd','gender' => 'gen','age' => 'age','income' => 'inc'
);
/**
* Create access to Compete API.
* @param string $apiKey user's api key.
*/
public function __construct($apiKey) {
$this->_apiKey = $apiKey;
}
/**
* Implement specific methods.
*/
public function __call($name,$args) {
if (array_key_exists($name,$this->_metrics) && isset($args[0]))
return $this->get($args[0],$this->_metrics[$name]);
throw new CompeteException($name . ' method does not exist.');
}
/**
* Get data from Compete.
* @param string $site some domain.
* @param string $metric metric to get.
* @return stdClass Compete data.
* @throws CompeteException
*/
public function get($site,$metric) {
if (!in_array($metric,$this->_availableMetrics))
throw new CompeteException($metric . ' - wrong metric.');
$values = array(
$this->_prepareUrl($site),$metric,$this->_apiKey
);
// Prepare call url
$url = str_replace($this->_urlKeys,$values,self::API_BASE_URL);
// Retrieve data using HTTP GET method.
$data = json_decode($this->_get($url));
// Because of unsuccessful responses contain "status_message".
if (!isset($data->status_message))
return $data;
throw new CompeteException('Status: ' . $data->status . '. ' .$data->status_message);
}
/**
* Cut unnecessary parts of url.
* @param string $url some url.
* @return string trimmed url.
*/
private function _prepareUrl($url) {
return str_replace($this->_toSearch,$this->_toReplace,$url);
}
/**
* Execute http get method.
* @param string $url request url.
* @return string response.
*/
private function _get($url) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,self::USER_AGENT);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
return curl_exec($ch);
}
}
希望本文所述对大家的PHP程序设计有所帮助。