php网页计数器的例子(文本与数据库)

发布时间:2020-03-31编辑:脚本学堂
本文介绍下,php中网页计数器的实现代码,从大家学习参考。

先来看一个简易的php计数器,代码如下:
 

复制代码 代码示例:
<?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 class='small'    >"." $num"."</b>位sweety!</span>"; 
    exec( "rm -rf $counterFile");          //删除旧文件 
    exec( "echo $num > $counterFile");     //创建新文件 

displayCounter(); 
?> 

 以上代码实现了一个简单的php文本计数器,每次浏览都会自行加一。
需要判别访问的人是新用户还是老用户。

很容易想到在$num += 1;这条语句上下手。
if(是新用户) { $num += 1;}

新用户的条件如何设定呢?
用到了$_COOKIE这个缓冲的小文件。它是保存在浏览器当中的东东,可以以此判断了!
必须html标签前设置setcookie()函数,语法如下:
 

setcookie(name, value, expire, path, domain);
 

只用到前三个参数,比如:
 

复制代码 代码示例:
setcookie("user","newguest",time()+3600);

首先,当一个新用户访问时,浏览器中没有设定相应的cookie,所以给他设定一个user,值为newguest,然后if()判断。
再一次访问时,此时设定了相应的cookie,也就是这个网站和浏览器认识,那么就改变user的值,变为oldguest,然后if()判断。
 

复制代码 代码示例:
<?php
//前面一段代码要放在网页的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 class='small'>"." $num"."</b>位sweety!</span>"; 
    exec( "rm -rf $counterFile"); 
    exec( "echo $num > $counterFile"); 
}  //by www.jb200.com
displayCounter(); 
?> 

但是,有个空间是不允许在服务器创建、读写文件的。所以,这就是第二种方法......

第二种实现php网页计数器的方法,使用数据库mysql) 。

判断的流程基本一样,看代码:
 

复制代码 代码示例:
<?php 
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 class='small'>"."$num"."</b>位sweety!</span>"; 
    } 

displayCounter(); 
?> 

附,数据库表的结构:
 

复制代码 代码示例:
CREATE TABLE `mycounter` (
  `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文本计数器,与一个用数据库实现的计数器,希望对大家有所帮助。