欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法實例

 更新時間:2015年04月02日 15:17:07   作者:pythoner  
這篇文章主要介紹了php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法,實例分析了php使用curl獲取Compete統(tǒng)計網(wǎng)站信息的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API用法。分享給大家供大家參考。具體如下:

這里使用php獲得網(wǎng)站訪問統(tǒng)計信息類Compete API,Compete是一個專門用來統(tǒng)計網(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);
 }
}

希望本文所述對大家的php程序設(shè)計有所幫助。

相關(guān)文章

  • php多數(shù)據(jù)庫支持的應(yīng)用程序設(shè)計

    php多數(shù)據(jù)庫支持的應(yīng)用程序設(shè)計

    以前做PHP應(yīng)用,多數(shù)是單數(shù)據(jù)庫數(shù)據(jù)查詢和更新,頂多也是主從數(shù)據(jù)庫的支持,實現(xiàn)起來相對簡單。主從數(shù)據(jù)庫的問題在于,當(dāng)會話存儲在數(shù)據(jù)庫的時候,同步將可能出現(xiàn)問題,也就是說有可能出現(xiàn)會話的中斷。
    2008-08-08
  • PHP中include和require的使用詳解

    PHP中include和require的使用詳解

    這篇文章主要介紹了PHP中include和require的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用PHP,感興趣的朋友可以了解下
    2021-04-04
  • PHP如何拋出異常處理錯誤

    PHP如何拋出異常處理錯誤

    PHP 5 提供了一種新的面向?qū)ο蟮腻e誤處理方法。異常處理用于在指定的錯誤(異常)情況發(fā)生時改變腳本的正常流程。這種情況稱為異常。
    2011-03-03
  • php用數(shù)組返回?zé)o限分類的列表數(shù)據(jù)的代碼

    php用數(shù)組返回?zé)o限分類的列表數(shù)據(jù)的代碼

    php自定義函數(shù)之用數(shù)組返回?zé)o限分類的列表數(shù)據(jù),這樣的實現(xiàn)可以提高執(zhí)行的效率不要每次都從數(shù)據(jù)庫讀取數(shù)據(jù)。
    2010-08-08
  • 解析在PHP中使用全局變量的幾種方法

    解析在PHP中使用全局變量的幾種方法

    本篇文章是對在PHP中使用全局變量的幾種方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP計算當(dāng)前坐標(biāo)3公里內(nèi)4個角落的最大最小經(jīng)緯度實例

    PHP計算當(dāng)前坐標(biāo)3公里內(nèi)4個角落的最大最小經(jīng)緯度實例

    這篇文章主要介紹了PHP計算當(dāng)前坐標(biāo)3公里內(nèi)4個角落的最大最小經(jīng)緯度的方法,涉及PHP數(shù)學(xué)運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-02-02
  • ThinkPHP 404頁面的設(shè)置方法

    ThinkPHP 404頁面的設(shè)置方法

    這篇文章主要介紹了ThinkPHP 404頁面的設(shè)置方法,需要的朋友可以參考下
    2015-01-01
  • PHP令牌 Token改進版

    PHP令牌 Token改進版

    那個版本中,存在一個小問題,因為要做可逆加密,而加密出來的字符是不可顯示字符+亂碼,所以我用了 base64對其進行了處理,這樣一來,就不會有亂碼和不可顯示字符了。
    2008-07-07
  • php_imagick實現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法

    php_imagick實現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法

    這篇文章主要介紹了php_imagick實現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法,可實現(xiàn)通過調(diào)用ImageMagick功能的PHP擴展使PHP具備和ImageMagick相同的功能,最終實現(xiàn)強大的ImageMagick圖形處理功能,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP函數(shù)常用用法小結(jié)

    PHP函數(shù)常用用法小結(jié)

    由于PHP是一種解釋型語言,所以函數(shù)編寫和調(diào)用很是方便。總結(jié)一下魔術(shù)函數(shù)、嵌套函數(shù)、匿名函數(shù)、函數(shù)調(diào)用方式和函數(shù)參數(shù)使用等。
    2010-02-02

最新評論