• 技术文章 >php教程 >PHP源码

    php统计网站/html页面浏览访问次数程序

    2016-06-08 17:23:57原创921
    本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考。

    实例1

    直接使用txt文件进行统计的代码

    代码如下 复制代码

    session_start();//定义session,同一IP登录不累加
    $filepath = 'count.txt';
    if ($_SESSION['temp'] == '')//判断$_SESSION[temp]的值是否为空,其中的temp为自定义的变量
    {
    if (!file_exists($filepath))//检查文件是否存在,不存在刚新建该文件并赋值为0
    {
    $fp = fopen($filepath,'w');
    fwrite($fp,0);
    fclose($fp);
    counter($filepath);
    }else
    {
    counter($filepath);
    }
    $_SESSION['temp'] = 1;//登录以后,给$_SESSION[temp]赋一个值1
    }
    echo '欢迎来到懒人站长素材网站,您是本站第'.file_get_contents($filepath).'位访客';
    //counter()方法用来得到文件内的数字

    function counter($f_value)
    {
    //用w模式打开文件时会清空里面的内容,所以先用r模式打开,取出文件内容,保存到变量
    $fp = fopen($f_value,'r') or die('打开文件时出错。');
    $countNum = fgets($fp,1024);
    fclose($fp);
    $countNum++;
    $fpw = fopen($f_value,'w');
    fwrite($fpw,$countNum);
    fclose($fpw);
    }
    //注释下面一行可以实现同一IP登录不累加效果,测试时可以打开
    session_destroy();
    ?>

    上面使用的是txt文件,下面我们来介绍一个mysql数据库操作实例

    代码如下 复制代码

    CREATE TABLE `mycounter` (
    `id` int(11) NOT NULL auto_increment,
    `Counter` int(11) NOT NULL,
    `CounterLastDay` int(10) default NULL,
    `CounterToday` int(10) default NULL,
    `RecordDate` date NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2 ;

    函数

    代码如下 复制代码
    public function ShowMyCounter(){
    //定义变量
    $IsGone = FALSE;
    //读取数据
    $querysql = "SELECT * FROM `mycounter` WHERE id = Ƈ' ";
    $queryset = mysql_query($querysql);
    $row = mysql_fetch_array($queryset);
    //获得时间量
    $DateNow = date('Y-m-d');
    $RecordDate = $row['RecordDate'];
    $DateNow_explode = explode("-",$DateNow);
    $RecordDate_explode = explode("-",$RecordDate);
    //判断是否已过去一天
    if( $DateNow_explode[0] > $RecordDate_explode[0]) $IsGone = TRUE;
    else if( $DateNow_explode[0] == $RecordDate_explode[0] ){
    if( $DateNow_explode[1] > $RecordDate_explode[1] ) $IsGone = TRUE;
    else if( $DateNow_explode[1] == $RecordDate_explode[1] ){
    if( $DateNow_explode[2] > $RecordDate_explode[2] ) $IsGone = TRUE;
    }else BREAK;
    }else BREAK;
    //根据IsGone进行相应操作
    IF($IsGone) {
    $RecordDate = $DateNow;
    $CounterToday = 0;
    $CounterLastDay = $row['CounterToday'];
    $upd_sql = "update mycounter set RecordDate = '$RecordDate',CounterToday = '$CounterToday',CounterLastDay = '$CounterLastDay' WHERE id = Ƈ' ";
    mysql_query($upd_sql);
    }
    //再次获取数据
    $querysql = "SELECT * FROM `mycounter` WHERE id = Ƈ' ";
    $queryset = mysql_query($querysql);
    $Counter = $row['Counter'];
    $CounterToday = $row['CounterToday'];
    $CounterLastDay = $row['CounterLastDay'];
    if($row = mysql_fetch_array($queryset) ){
    if( $_COOKIE["user"] != "oldGuest" ){
    $Counter = ++$row['Counter'];
    $CounterToday = ++$row['CounterToday'];
    $upd_sql = "update mycounter set counter = '$Counter',CounterToday = '$CounterToday' WHERE id = Ƈ' ";
    $myquery = mysql_query($upd_sql);
    }
    echo "总访问量:".$Counter;
    echo "
    ";
    echo "今日流量:".$CounterToday;
    echo "
    ";
    echo "昨日流量:".$CounterLastDay;
    }else{//如果数据库为空时,相应的操作
    }
    }
    ?>

    当然,需要在文件第一行开始写出如下代码:

    代码如下 复制代码

    session_start();
    if( !isset($_COOKIE["user"]) ){
    setcookie("user","newGuest",time()+3600);
    }else {
    setcookie("user","oldGuest");
    }
    ?>

    如果是静态页面我们上面的方法是不可以实现的,但下面再举一个不错的统计实例

    代码如下 复制代码




    Insert title here




    php统计静态html页面浏览访问次数代码





    count.php代码

    代码如下 复制代码

    $aid = isset( $_GET['aid'] )?$_GET['aid']:'';
    $t = isset( $_GET['t'] )?$_GET['t']:'';
    if(intval( $aid )){
    if( $t =='show' ){
    echo "document.write('这里是显示浏览次数,可以从数据库读出来');";
    }
    else{
    $conn = mysql_connect('localhost','root','root') ;
    $sql = "Update count set click_num = click_num+1 where aid ='$aid'";
    mysql_db_query('db_test',$sql,$conn);
    }
    }
    ?>

    数据库

    代码如下 复制代码

    --
    -- 表的结构 `count`
    --
    CREATE TABLE IF NOT EXISTS `count` (
    `id` int(11) NOT NULL auto_increment,
    `aid` int(11) default NULL,
    `click_num` int(11) default NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=2 ;

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp quot RecordDate CounterToday explode
    上一篇:PHP 下载远程网页图片并且保存在本地实例 下一篇:PHP新浪面试题全部题目与答案
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php 完整图片按比例生成缩略图代码• php 获取系统当前路径与检查php配置参数• php入门教程-留言板程序• 极简的创建文件夹函数 • PHP读取文本文件并逐行输出该行使用最多的字符串及对应次数
    1/1

    PHP中文网