分享
 
 
 

PHP 完全中文手册-第五章-Ⅰ

王朝php·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

访客计数器是让 Web 访客知道该网页或者网站的人气指数最直接的方法。尤其是想利用网页赚钱的人,访客人数是找广告商最好的说词。当然可以将网站来访人数写成统计报表,但总是感觉直接看到比较真实,到底眼见为凭。

PHP 在没有特殊的访客计数器函数,但是我们可以用 PHP 的强大功能自已写一个访客计数器函数。

以下的函数是访客计数器的原型,是由 David W. Bettis 所提供,并经过作者少许修改。

<html>

<head>

<title>访客计数器 原型</title>

</head>

<body>

<?php

/*

simple access counter for php3

(c)1998 David W. Bettis

dbettis@eyeintegrated.com

medify by Wilson Peng

*/

$counterFile = "/tmp/counter.txt";

function displayCounter($counterFile) {

$fp = fopen($counterFile,"rw");

$num = fgets($fp,5);

$num += 1;

print "您是第 "."$num"." 位无聊份子";

exec( "rm -rf $counterFile");

exec( "echo $num > $counterFile");

}

if (!file_exists($counterFile)) {

exec( "echo 0 > $counterFile");

}

displayCounter($counterFile);

?>

</body>

</html>

Copyright © 1998 David W. Bettis

在读取到本页时,PHP 程序先找寻 /tmp/counter.txt 文件是否存在,若不存在,则建立一个 counter.txt 文件,然后将 0 写入文件。然后读取 counter.txt 文件的内容,也就是纯文字叠,再将内文的数字存入 $num 变量中。在 $num 的变量出现在浏览器前,还有经过加一的步骤,让用户可以增加。当然,如果想灌水,就在加一步骤时加二或者加三,不过自欺是无用的。最后将访客人数再回存 /tmp/counter.txt 就一切 OK。

当然,每一页都要这样写,岂不麻烦到了极点。这时,我们可以利用 PHP 提供的 require() 功能,将计数器整理成一个函数,酱子在使用上就方便多多了。

首先要先将 Apache 的配置文件 (httpd.conf) 加入 PHP include 文件的路径。例如要设所有的 include 文件都在 http://abcdefghijk.com.tw/include 中,可以在 httpd.conf 加入下面的例子

php3_include_path .:./include:../include

别忘了重新启动 Apache 服务器,新增的 include 路径才有效。

./apachectl restart

再来就在服务器的 .../include 目录中放入以下的文件,文件名存成 counter.inc

下面就是 MyCounter() 函数。为了让读者方便了解,程序中的变量 $counterFile、$fp 及 $num 保持和 David W. Bettis 所配置的计数器中的变量功能相同。

<?php

//---------------------------

// 访客计数器函数 MyCounter()

// Author: Wilson Peng

// Copyright (C) 1999

//---------------------------

function MyCounter() {

$counterFile="/tmp".$GLOBALS["PHP_SELF"];

if (!file_exists($counterFile)) {

if (!file_exists(dirname($counterFile))) {

mkdir(dirname($counterFile), 0700);

}

exec("echo 0 > $counterFile");

}

$fp = fopen($counterFile,"rw");

$num = fgets($fp,5);

$num += 1;

print "$num";

echo $counterFile;

exec("rm -rf $counterFile");

exec("echo $num > $counterFile");

}

?>

Copyright © 1999, Wilson Peng

当然,要用的话要加 Homepage 中嵌入 MyCounter() 函数,就可以使用了

<?php

require("counter.inc");

?>

<html>

<head>

<title>访客计数器 最终版</title>

</head>

<body>

您是第 <? MyCounter(); ?> 位参观者

</body>

</html>

Copyright © 1999, Wilson Peng

要用这个 MyCounter() 函数,先在 Homepage 的开头处加入 require() 函数,引入 MyCounter() 函数成为该 Homepage 的一部份。之后再将 <? MyCounter(); ?> 字符串放在需要计数器的地方就可以了。

function MyCounter() {

:

:

}

在建立函数时,需要用上面的格式。在自订函数名称前加入 function 字符串。

每页有用到 MyCounter() 的 Homepage 都会在 /tmp 之后加入该页的路径,这可以用 $PHP_SELF 变量达成。

$counterFile="/tmp".$GLOBALS["PHP_SELF"];

当然,若您要将 /tmp 改成别的目录也可以,不然在 SUN 等服务器,要是 reboot,/tmp 中的东西都没了,要重新开始再计数了。若您不知要使用什么目录,建议使用 /var/log/counter 这个目录,和其它的 log 等变动资料放在一起。

if (!file_exists($counterFile)) {

if (!file_exists(dirname($counterFile))) {

mkdir(dirname($counterFile), 0700);

}

exec("echo 0 > $counterFile");

}

这五行主要是检查 $counterFile 是否存在,若文件不存在则看目录是否存在,决定要不要建立目录。之后就建立文件,并写入 0。

$fp = fopen($counterFile,"rw");

$num = fgets($fp,5);

$num += 1;

print "$num";

echo $counterFile;

这五行就是打开计数器存放的文件,并将它累加后的结果送到浏览器端。

exec("rm -rf $counterFile");

exec("echo $num > $counterFile");

最后将计数器文件删除,再重新建立一个。就完成了这个以文件为基础的纯文字计数器。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有