加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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实例: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为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读