php获得网站访问统计信息类Compete API用法实例,访问统计compete
本文实例讲述了php获得网站访问统计信息类Compete API用法。分享给大家供大家参考。具体如下:
这里使用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程序设计有所帮助。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
3 週前ByDDD
<🎜>:死鐵路 - 如何完成所有挑戰
4 週前ByDDD
Atomfall指南:項目位置,任務指南和技巧
1 個月前ByDDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具