php獲得網(wǎng)站訪問統(tǒng)計(jì)信息類Compete API用法實(shí)例
本文實(shí)例講述了php獲得網(wǎng)站訪問統(tǒng)計(jì)信息類Compete API用法。分享給大家供大家參考。具體如下:
這里使用php獲得網(wǎng)站訪問統(tǒng)計(jì)信息類Compete API,Compete是一個(gè)專門用來統(tǒng)計(jì)網(wǎng)站信息的網(wǎng)站
<?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); } }
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- PHP記錄搜索引擎蜘蛛訪問網(wǎng)站足跡的方法
- php中記錄用戶訪問過的產(chǎn)品,在cookie記錄產(chǎn)品id,id取得產(chǎn)品信息
- php下用cookie統(tǒng)計(jì)用戶訪問網(wǎng)頁(yè)次數(shù)的代碼
- php利用cookie實(shí)現(xiàn)訪問次數(shù)統(tǒng)計(jì)代碼
- php使用文本統(tǒng)計(jì)訪問量的方法
- 使用PHP實(shí)現(xiàn)蜘蛛訪問日志統(tǒng)計(jì)
- PHP基于cookie與session統(tǒng)計(jì)網(wǎng)站訪問量并輸出顯示的方法
- php網(wǎng)站判斷用戶是否是手機(jī)訪問的方法
- php使用cookie顯示用戶上次訪問網(wǎng)站日期的方法
- PHP實(shí)現(xiàn)網(wǎng)站訪問量計(jì)數(shù)器
- PHP簡(jiǎn)單實(shí)現(xiàn)記錄網(wǎng)站訪問量功能示例
相關(guān)文章
php多數(shù)據(jù)庫(kù)支持的應(yīng)用程序設(shè)計(jì)
以前做PHP應(yīng)用,多數(shù)是單數(shù)據(jù)庫(kù)數(shù)據(jù)查詢和更新,頂多也是主從數(shù)據(jù)庫(kù)的支持,實(shí)現(xiàn)起來相對(duì)簡(jiǎn)單。主從數(shù)據(jù)庫(kù)的問題在于,當(dāng)會(huì)話存儲(chǔ)在數(shù)據(jù)庫(kù)的時(shí)候,同步將可能出現(xiàn)問題,也就是說有可能出現(xiàn)會(huì)話的中斷。2008-08-08php用數(shù)組返回?zé)o限分類的列表數(shù)據(jù)的代碼
php自定義函數(shù)之用數(shù)組返回?zé)o限分類的列表數(shù)據(jù),這樣的實(shí)現(xiàn)可以提高執(zhí)行的效率不要每次都從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)。2010-08-08PHP計(jì)算當(dāng)前坐標(biāo)3公里內(nèi)4個(gè)角落的最大最小經(jīng)緯度實(shí)例
這篇文章主要介紹了PHP計(jì)算當(dāng)前坐標(biāo)3公里內(nèi)4個(gè)角落的最大最小經(jīng)緯度的方法,涉及PHP數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-02-02php_imagick實(shí)現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法
這篇文章主要介紹了php_imagick實(shí)現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法,可實(shí)現(xiàn)通過調(diào)用ImageMagick功能的PHP擴(kuò)展使PHP具備和ImageMagick相同的功能,最終實(shí)現(xiàn)強(qiáng)大的ImageMagick圖形處理功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12