php获得网站访问统计信息类Compete API用法实例
发布时间:2020-12-13 02:32:48 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php获得网站访问统计信息类Compete API用法实例》要点: 本文介绍了PHP实例:php获得网站访问统计信息类Compete API用法实例,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解php获得网站拜访统计信息类Compete API用法.分享给大家供大
《PHP实例:php获得网站访问统计信息类Compete API用法实例》要点: 本篇章节讲解php获得网站拜访统计信息类Compete API用法.分享给大家供大家参考.具体如下:PHP应用 这里使用php获得网站拜访统计信息类Compete API,Compete是一个专门用来统计网站信息的网站 <?php // Check for dependencies if (!function_exists('curl_init')) throw new Exception('Compete needs the CURL PHP extension.'); if (!function_exists('json_decode')) throw new Exception('Compete needs the JSON PHP extension.'); /** * Base Compete exception class. */ class CompeteException extends Exception {} /** * Represents Compete API. * @author Egor Gumenyuk (boo1ean0807 at gmail dot com) * @package Compete * @license Apache 2.0 */ class Compete { /** * Default usr agent. */ const USER_AGENT = 'Compete API wrapper for PHP'; /** * Base url for api calls. */ const API_BASE_URL = 'http://apps.compete.com/sites/:domain/trended/:metric/?apikey=:key'; /** * Masks for url params. */ private $_urlKeys = array(':domain',':metric',':key'); private $_apiKey; /** * For url cleaning. */ private $_toSearch = array('http://','www.'); private $_toReplace = array('',''); /** * List of available metrics. */ private $_availableMetrics = array( // Description Auth type 'uv',// Unique Visitors Basic 'vis',// Visits Basic 'rank',// Rank Basic 'pv',// Page Views All-Access 'avgstay',// Average Stay All-Access 'vpp',// Visits/Person All-Access 'ppv',// Pages/Visit All-Access 'att',// Attention All-Access 'reachd',// Daily Reach All-Access 'attd',// Daily Attention All-Access 'gen',// Gender All-Access 'age',// Age All-Access 'inc',// Income All-Access ); /** * List of available methods for __call() implementation. */ private $_metrics = array( 'uniqueVisitors' => '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程序设计有所赞助. 《PHP实例:php获得网站访问统计信息类Compete API用法实例》是否对您有启发,欢迎查看更多与《PHP实例:php获得网站访问统计信息类Compete API用法实例》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |