php api调用统计,php获得网站访问统计信息类Compete API用法实例

本文实例讲述了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("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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值