外部呼叫JavaScript跟PHP(2) - 線上人數偵測 - 部落格

Tristan Cohan avatar
By Tristan Cohan
at 2007-02-21T15:08

Table of Contents

※ [本文轉錄自 PHP 看板]

作者: kewang () 看板: PHP
標題: [心得] 外部呼叫JavaScript跟PHP(2)
時間: Wed Feb 21 15:07:46 2007

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)

--
雜七雜八的kewang部落格 http://kewang.pixnet.net

--

All Comments

Re: PTT Blog板友簽到簿(PTTBlogRolling!)

Ula avatar
By Ula
at 2007-02-21T14:45
※ 引述《KenHsu ( )》之銘言: : ID 網址 站名 架設環境 : cucubird http://wizandbook.blogspot.com Wizatbook bl ...

請教一下天空的語法

Enid avatar
By Enid
at 2007-02-21T14:19
如題,我在插入播放器的語法之後。 blog內文上方出現一大片空白,要下拉好久才看的到... 進入樣板設計小幫手調整內文的高度也沒辦法... 可是我的朋友說從他的電腦看沒這個問題,但是我卻有= =+ 請板友幫我解決好嗎? 我的blog http://diary.blog.yam.com/shiva6 ...

部落格寵物

Andrew avatar
By Andrew
at 2007-02-21T12:03
※ 引述《misscat1982 (J。)》之銘言: : 有高手可以比較一下這些差異性在哪嘛 : 我覺得日本的都做得很可愛 : 可是一堆看不懂的日文字很礙眼呀 : 而有些好像並不是放在那邊靠文章跟流量就可以的 : 好像還要特別去照顧 : 剛申請好blogger想養隻寵物 : 可是卻眼花撩亂 BlogPet ...

部落格寵物

Agnes avatar
By Agnes
at 2007-02-21T10:21
有高手可以比較一下這些差異性在哪嘛 我覺得日本的都做得很可愛 可是一堆看不懂的日文字很礙眼呀 而有些好像並不是放在那邊靠文章跟流量就可以的 好像還要特別去照顧 剛申請好blogger想養隻寵物 可是卻眼花撩亂 ※ 引述《cocacolababy ()》之銘言: : 因為今天朋友幫我養了小水滴 ...

請教BLOGGER中加入JAVASCRIPT的問題

Heather avatar
By Heather
at 2007-02-21T07:36
大家好 我最近申請BLOGGER不久 我想要在我的BLOG中加入月曆的功能 上網找了一些文章 這些教學是要我在模板裡頭更改程式碼 加入一些JAVASCRIPT 但是我無論怎麼加入 我的月曆就是顯示不出來 我嘗試過修範本跟上載模板的方式也都不行 雖然文件可以順利儲存但就是顯示不出效果 請問我該注意哪個地方?? ...