纯属闲得慌(经典开头?),想给网站增加一个来路统计,好知道从各个网站来的流量。
下面就简单的写了一点,用文件把数据保存下来。这种统计很容易被刷,所以只能参考一下。。
我使用的是Typecho博客,因此我在index.php中增加了两行代码,引用本体程序。下面是我修改过的index.php:
<?php
/**
* Typecho Blog Platform
*
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
* @version $Id: index.php 1153 2009-07-02 10:53:22Z magike.net $
*/
// 添加统计来源
$_ref_include = true;
require '_ref.php';
/** 载入配置支持 */
if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
exit;
}
/** 初始化组件 */
\Widget\Init::alloc();
/** 注册一个初始化插件 */
\Typecho\Plugin::factory('index.php')->begin();
/** 开始路由分发 */
\Typecho\Router::dispatch();
/** 注册一个结束插件 */
\Typecho\Plugin::factory('index.php')->end();
接着,创建一个_ref.php,
<?php
// 如果是index引过来
if (isset($_ref_include)) {
if (isset($_GET['_ref'])) {
if (!is_dir('./refcount/')) {
mkdir('./refcount/', 0777);
}
if (!file_exists('./refcount/' . $_GET['_ref'] . '.txt')) {
file_put_contents('./refcount/' . $_GET['_ref'] . '.txt', '1');
} else {
file_put_contents('./refcount/' . $_GET['_ref'] . '.txt', (int) file_get_contents('./refcount/' . $_GET['_ref'] . '.txt') + 1);
}
echo '<script>window.location.href="/";</script>';
}
} else {
// 如果是直接访问输出计数
header('content-type: text/plain');
echo '来自' . $_GET['_ref'] . '的访问数为:' . (string) file_get_contents('./refcount/' . $_GET['_ref'] . '.txt');
}
然后就可以了。在网站添加友情链接时,带上?ref=随便一个用于识别的id,如我在史诗彼岸填写的地址:https://www.i45s.com/?_ref=epicyonder 。
接下来,每次打开他都会计数一次,然后自动去掉_ref。
需要查询数据时,打开https://www.i45s.com/_ref.php?_ref=之前的id 即可。比如:https://www.i45s.com/_ref.php?_ref=epicyonder 。
(水一水,更健康