歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

PHP圖形數字計數器的實現

php圖形數字計數器,是現在網站中經常使用的方法,它的基本功能是針對單個用戶而言,登錄網站後計數器的值加一,用戶刷新網頁,計數器的值不會增加。這一點功能的實現是利用session來實現的,當用戶登錄時,檢測session變量的值,如果該值為空,則在存放登錄人數的文件中讀取現有的訪問量,將該值加一,關閉文件,然後輸出改值;如果session變量的值不為空,則計數器的值不增加,即使在用戶刷新的時候也不增加。

session實現計數有一點不足的地方,就是雖然用戶在該頁面刷新時計數器的值不會增加,但是當用戶關閉浏覽器,再次打開這個網頁時,計數器的值仍會增加,不過這樣也是符合計數的原理的;在這一點和cookie不同的是,利用cookie實現用戶刷新計數器的值不更新,關閉浏覽器打開也是不更新,但是這是在一定的期限內的,當用戶設置的cookie過期之後,計數器的值還是會增加;這樣分析來看,如果要非常精確的計數,有多少人訪問網站就要用IP來實現,而且要存儲在數據庫中,這個相對前兩種來說麻煩一點,但是利用數據庫保存IP可以實現更精確的統計,不單單實現用戶刷新不重復計數,還能實現統計總的訪問量,某個月的訪問量,某天的訪問量,甚至精確到某個IP的訪問量等,在這裡就先介紹利用session實現的圖形數字計數器:

在根目錄下創建:data.txt的文件,用來保存訪問量。

 $handle=fopen("data.txt","r");
    if(!$handle){
        echo "打開文件失敗!";
    }else{
        echo "您是本站的第:";
        $counter = fgets($handle,1024);        // 取出文件中的現有的訪問量的值
        fclose($handle);
        $count = strlen($counter);    // 這裡實現的是6為數字的計數,例如002056,在這裡計算出counter的長度,那麼它前面的就是全部輸出0就可以了
        for($i=0;$i<6-$count;$i++){
            echo "<img src='images/0.png'>&nbsp;";      // 2056前面都輸出  0 的那個小png的圖片
        }
    }
    for($i=0;$i<$count;$i++){
        $disgn = substr($counter,$i,1);  // 這裡利用substr()函數實現一位一位的數字來比較,第一個參數是string類型的變量,第二個參數是從第幾個開始輸出,第三個變量是    輸出幾個
        switch($disgn) {                          // 各自比較    轉化為圖片的形式
            case '0':
                $rst[$i]='0.png';
                break;
            case '1';
                $rst[$i]='1.png';
                break;
            case '2':
                $rst[$i]='2.png';
                break;
            case '3':
                $rst[$i]='3.png';
                break;
            case '4':
                $rst[$i]='4.png';
                break;
            case '5':
                $rst[$i]='5.png';
                break;
            case '6':
                $rst[$i]='6.png';
                break;
            case '7':
                $rst[$i]='7.png';
                break;
            case '8':
                $rst[$i]='8.png';
                break;
            case '9':
                $rst[$i]='9.png';
                break;
        }
        echo "<img src='images/".$rst[$i]."'>&nbsp;";
      }
    echo "位訪客";

這裡要准備0—9的圖片素材,保存在根目錄下的images文件夾中就可以了,具體的實現效果是:

Copyright © Linux教程網 All Rights Reserved