• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php使用curl获取Compete统计网站信息的方法

php 搞代码 4年前 (2022-01-22) 53次浏览 已收录 0个评论

这篇文章主要介绍了php获得网站访问统计信息类Compete API用法,实例分析了php使用curl获取Compete统计网站信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php获得网站访问统计信息类Compete API用法。具体如下:

这里使用php获得网站访问统计信息类Compete API,Compete是一个专门用来统计网站信息的网站

<?php// Check for dependenciesif (!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(<b style="color:transparent">本文来源gao@!dai!ma.com搞$$代^@码!网!</b><strong>搞gaodaima代码</strong>'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); }}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php使用curl获取Compete统计网站信息的方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址