在php文件中直接使用计数器的代码:
<?PHP
//计数器写入的文件 num.txt
$countfile = "num.txt";
//用读写模式打开文件,若不能打开就退出
if (($fp = fopen($countfile, "r+")) == false) {
printf ("打开文件 %s 失败!",$countfile);
exit;
}
else
{
//如果文件能够正常打开,就读入文件中的数据,假设是1
$count = fread ($fp,10);
//读取10位数据
$count = $count + 1;
fclose ($fp);
//关闭当前文件
$fp = fopen($countfile, "w+");
//以覆盖模式打开文件
fwrite ($fp,$count);
//写入加1后的新数据
fclose ($fp);
//并关闭文件
echo '您好,您是第'. $count.'位访客';
//输出数据
}
?>
以上内容保存到php中即可,并在同目录下建立num.txt
将以上代码,修改成可以js调用的代码,这也是调用计数器的常用方法。
<?PHP
$countfile = "num.txt";
//定义计数器写入的文件是当前目录下num.txt,然后我们应当测试该文件能否打开
if (($fp = fopen($countfile, "r+")) == false) { //用读写模式打开文件,若不能打开就退出
printf ("打开文件 %s 失败!",$countfile);
exit;
} //by www.
else
{
//如果文件能够正常打开,就读入文件中的数据,假设是1
$count = fread ($fp,10);
//读取10位数据
$count = $count + 1;
fclose ($fp);
//关闭当前文件
$fp = fopen($countfile, "w+");
//以覆盖模式打开文件
fwrite ($fp,$count);
//写入加1后的新数据
fclose ($fp);
//并关闭文件
echo 'document.write("'.$count.'")';
//用javascript形式输出数据
}
?>
以上内容保存到FileCount.php,并在同目录下建立num.txt。
在html文件里面js调用方法。
<HEAD>
<TITLE>页面分离计数器范例</TITLE>
</HEAD>
<BODY>
您好,您是第
<SCRIPT LANGUAGE="JavaScript" src="/blog_article/FileCount.html">
//注意php计数器所在的服务器及目录路径。
</SCRIPT>
位访客
</BODY>
</HTML>
一个简单的文本型计数器的代码:
$f=fopen("count.dat","r");
$c=fread($f,3);
echo '人数:'.$c;
fclose($f);
$f=fopen("count.dat","w");
fwrite($f,$c);
fclose($f);
?>
另外,为大家提供三个php文本计数器的实例代码,有需要的朋友,参考下吧。
php计数器代码1,
//计数器
function countx($file="count.dat"){
if(file_exists($file)){
$fp=fopen($file,"r");
$numx=fgets($fp,10);
fclose($fp);
$numx++;
//以上四行代码可以用一条表达式代替:$numx=file_get_contents($file)+1;
}
else{
$numx=1;}
file_put_contents($file,$numx);//当文件不存在时,这函数会自动创建文件,而且会自动把参数转成字符串写入。
echo $numx;
/*整个函数体可以用两条表达式代替:file_exists($file)?file_put_contents($file,file_get_contents($file)+1):file_put_contents($file,"1");readfile($file);
*/
}
//函数调用
countx();
?>
php计数器代码2,
$counterfile = "balong.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);
?>
php计数器代码3,
$counterfile = "www..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);
?>
先来看一个简易的php计数器,代码如下:
//php简易计数器
function displayCounter() {
$counterFile = "include/counter.txt"; //定义路径变量
if (!file_exists($counterFile)) { //如果不存在,则创建文件并写入初值0
exec( "echo 0 > $counterFile");
}
$fp = fopen($counterFile,"rw"); //指向文件
$num = fgets($fp,10); //读取内容
$num += 1;
print "<br><br><br><span>您是第<b >"." $num"."</b>位sweety!</span>";
exec( "rm -rf $counterFile"); //删除旧文件
exec( "echo $num > $counterFile"); //创建新文件
}
displayCounter();
?>
以上代码实现了一个简单的php文本计数器,每次浏览都会自行加一。
需要判别访问的人是新用户还是老用户。
很容易想到在$num += 1;这条语句上下手。
if(是新用户) { $num += 1;}
新用户的条件如何设定呢?
用到了$_COOKIE这个缓冲的小文件。它是保存在浏览器当中的东东,可以以此判断了!
必须html标签前设置setcookie()函数,语法如下:
只用到前三个参数,比如:
首先,当一个新用户访问时,浏览器中没有设定相应的cookie,所以给他设定一个user,值为newguest,然后if()判断。
再一次访问时,此时设定了相应的cookie,也就是这个网站和浏览器认识,那么就改变user的值,变为oldguest,然后if()判断。
//前面一段代码要放在网页的html标签前面。
if( !isset()($_COOKIE["user"]) ){
setcookie("user","newguest",time()+3600);
}else {
setcookie("user","oldguest");
}
......
function displayCounter() { //php简易计数器
$counterFile = "include/counter.txt";
if (!file_exists($counterFile)) {
exec( "echo 0 > $counterFile");
}
$fp = fopen($counterFile,"rw");
$num = fgets($fp,10);
if( $_COOKIE["user"] != "oldguest" ){
$num += 1;
}
print "<span>您是第<b >"." $num"."</b>位sweety!</span>";
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
} //by www.
displayCounter();
?>
但是,有个空间是不允许在服务器创建、读写文件的。所以,这就是第二种方法......
第二种实现php网页计数器的方法,使用数据库(mysql) 。
判断的流程基本一样,看代码:
if( !isset($_COOKIE["user"]) ){
setcookie("user","newguest",time()+3600);
}else {
setcookie("user","oldguest");
}
......
function displayCounter() { //php简易计数器
$querysql = "select * from mycounter where id = 1";
$queryset = mysql_query()($querysql);
while($row = mysql_fetch_array($queryset)){
$num = $row[counter];
if( $_COOKIE["user"] != "oldguest" ){
$num = ++$row[counter];
$upd_sql = "update mycounter set counter = '$num' WHERE id = '1' ";
$myquery = mysql_query($upd_sql);
}
print "<span>您是第<b >"."$num"."</b>位sweety!</span>";
}
}
displayCounter();
?>
附,数据库表的结构:
`id` int(11) NOT NULL AUTO_INCREMENT,
`counter` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
就是这些了,本文介绍了一个简单的php文本计数器,与一个用数据库实现的计数器,希望对大家有所帮助。