Re: [心得] 外部呼叫JavaScript跟PHP(2) - 線上人밠…

看板PHP作者 (Top sales !)時間19年前 (2007/02/27 21:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
請問各位前輩 統計線上人數的方式 如下是使用寫入、以及一行行比對"文字檔"的方式 跟使用資料庫並將TABLE設為Memory模式的查詢方式 哪一種效率比較好呢? 感謝! ※ 引述《kewang ()》之銘言: : HTML版本 http://blog.pixnet.net/kewang/post/2860524 : 了解外部呼叫JavaScript跟PHP(1)之後,接下來就要做線上人數偵測。 : 參考了網站建置百寶箱的這篇文章之後,我們必須將程式碼的輸出部分修改為 : document.writeln的方式。 : 大家會發現我寫的第一篇文章,裡面用到一堆的echo還有document.writeln, : 因為太繁雜了,我們可以用function改寫,到時候如果有一大堆的 : document.writeln我們直接呼叫print_by_js就可以了。 : function print_by_js($string) : { : echo "document.writeln(\"$string\");\n"; : } : 在開發此功能時,需要建立兩個檔案ip.txt以及time.txt,權限均為666。 : 下面就是我改寫網站建置百寶箱文章之後的原始碼,而且我多增加了一個功能, : 就是顯示你瀏覽此網站的IP。 : <?php : //treat the php file as javascript file : Header("content-type: application/x-javascript"); : //call external javascript : function print_by_js($string) : { : echo "document.writeln(\"$string\");\n"; : } : //get time of day : $now = gettimeofday(); : $filetime = file_get_contents('time.txt'); : //if time.txt is NULL, then write now['sec'] to time.txt and clear ip.txt : if($filetime == '') : { : $f_time = fopen('time.txt', 'w+'); : fputs($f_time, $now['sec']); : fclose($f_time); : $f_ip=fopen('ip.txt', 'w+'); : fputs($f_ip, ''); : fclose($f_ip); : } : //get time of today : $filetime = file_get_contents('time.txt'); : //refresh time is 60secs : $threshold = ($now['sec'] - $filetime); : //if refresh time is greater than 60secs, then clear time.txt : if($threshold > 60) : { : $f_time = fopen('time.txt', 'w+'); : fputs($f_time, ''); : fclose($f_time); : } : //open ip.txt, its mode is "append" : $f_ip = fopen('ip.txt', 'a+'); : //get remote address : $ip = $_SERVER['REMOTE_ADDR']; : $flag = 1; : $fileip = file('ip.txt'); : $total = count($fileip); : //exclusive the same IP : for($i = 0; $i < $total; $i++) : { : if("$ip\n" == $fileip[$i]) : { : $flag = 0; : break; : } : } : if($flag == 1) : { : $ipstring = "$ip\n"; : fputs($f_ip, $ipstring); : } : fclose($f_ip); : //show onlines : $fileip = file('ip.txt'); : $onlines = count($fileip); : print_by_js("您的IP為$ip<br />"); : print_by_js("目前線上人數:$onlines"); : ?> : 有了這項利器,以後在開發blog的時候就非常方便了。 : 參考資料: : External JavaScript and PHP : 首頁∕PHP建構術∕線上人數統計 : 外部呼叫JavaScript跟PHP(1) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.86.91
文章代碼(AID): #15v3AJKi (PHP)
文章代碼(AID): #15v3AJKi (PHP)