≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

php 获取网站访问统计信息的类Compete API用法

人气:489 时间:2018-09-21

这篇文章主要为大家详细介绍了php 获取网站访问统计信息的类Compete API用法,具有一定的参考价值,可以用来参考一下。

对php获得网站访问统计信息的类Compete API感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
php获得网站访问统计信息的类Compete API,Compete是一个专门用来统计网站信息的网站

<?php
/**
 * 获得网站访问统计信息的类Compete API
 *
 * @param 
 * @author 四海网 www.q1010.com
 **/
// 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);
  }
}


/***   来自四海网(www.q1010.com)   ***/

本文来自:http://www.q1010.com/173/640-0.html

注:关于php 获取网站访问统计信息的类Compete API用法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:访问统计

您可能感兴趣的文章

上一篇:php 检测字符串是否包含HTML代码的简单示例
下一篇:php 返回字符串所有单词,并去除重复的简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。