asp 文本文章點擊統計代碼

來源:互聯網
上載者:User

class Views {
        private $update_time = 1800;                        //更新,單位秒
        private $log_dir = './www.111cn.net/log/';                //檔案存放目錄
        private $pid = '0';                                //文章ID
    function __construct($po_id) {
            $pid = (is_numeric($po_id) && $po_id > 0) ? intval($po_id) : 0;                //擷取文章ID
            $this->pid = $pid;
    }
        //讀取文檔並將點擊數 + 1
        function read(){
                if($this->pid > 0){
                        //$s = "";
                        $filename = SITE_ROOT.$this->log_dir.'click_log.txt';                //檔案名稱
                        if (file_exists($filename)) {
                                $content = file_get_contents($filename);
                                if($content){
                                        $dary = explode(" ", $content);                        //把文檔內容數組化
                                        foreach ($dary as $line) {
                                                $data_ary = explode('|', $line);
                                                $ary[$data_ary[0]] = $data_ary[1];
                                        }
                                }
                                if (array_key_exists($this->pid, $ary)) {                        //檢查鍵在數組中是否存在
                                        $ary[$this->pid] = $ary[$this->pid] + 1;                //將當前的文章的點擊數加1
                                } else {
                                        $ary[$this->pid] = 1;                //文章ID第一次出現那麼給一個初始值1
                                }
                                foreach ($ary as $key => $val) {
                                        $s .= $key.'|'.$val." ";                //數組完成再還原成為文檔格式
                                }
                                print_r($s);
                        } else {
                                $s .= $this->pid.'|1'." ";                        //這個是初始化文檔www.111cn.net
                        }
                }
                $fp = fopen($filename, "w");
                if(flock($fp, LOCK_EX)) {                //進行排它型鎖定
                        fwrite($fp, $s);
                        flock($fp, LOCK_UN);                //釋放鎖定
                }
                fclose($fp);
                @chmod($filename, 0777);
        }
}
$a = new Views("3");
$a->read();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.