top
Loading...
如何將PHP的結果輸出到非PHP頁面中
這個問題是當我自已實現了統計計數之后,我想將它的輸出用在我的不支持PHP功能的頁面中,那么應該如何做呢?主要的解決辦法是輸出一段javascript腳本即可。這個是很有用的,比如實現動態新聞, 廣告輪詢,當然這里是講如何把某個程序的下載計數輸出到非PHP頁面中去。

先讓我們設想一下:我已經有了一個程序下載計數文件在我的網站上,如../count/download.db。
文件格式為:
索引|文件名提示|鏈接|計數
注意,這里用"|"線分隔。我采用的是文本文件進行處理。里面可能某一行數據為:
file1|測試文件1|../download/file1.zip|10
可以看到,下載次數可能已經是10次了。現在我就想把這個10次輸出到其它的頁面中。

第一步:寫Javascript腳本

很簡單:

<script language=javascript src="../bin/output.php?id=file1"></script>

是不是!src后面是指輸出的腳本程序,"?"后面是傳入腳本的參數。那么output.php應該輸出什么數據
才能被執行呢?應該輸出javascript語句,如document.write()之類的語句。這樣,瀏覽器就會把output.php
的輸出結果看成一段javascript程序再進行處理,就好象直接寫的腳本一樣,只不過這段腳本是從別的地方
得到的。

好了,知道應該輸出什么樣的內容了,就可以寫php程序了。

第二步:輸出結果

<?
$fp=fopen("../count/download.db", "r");
$flag=FALSE;
while(!feof($fp))
{
$line=fgets($fp, 256);
list($index, $title, $url, $count)=split("|", $line);
if (strtolower($index)==strtolower($id))
{
$flag=TRUE;
break;
}
}
fclose($fp);
if ($flag)
{
echo "document.write($count);";
}
else
echo "document.write("not found");";
?>


這段代碼也很簡單,但是有幾點要說明。先打開一個文件。$flag表示是否找到指定索引的文件記錄,
首先置為FALSE。再是一個循環,條件是文件沒有結束。

然后是循環體:取出一行文本,長度最好長點。進行字段分割,以"|"為分割符。注意,使用的split函
數是正則表達式,"|"是一個特殊符號用以用""號。然后分別放入相應的變量中。在這里我們真正關心的是
$index和$count。比較輸入的參數$id與取出的索引($index)是否相等,如果相等,則將找到標志設為TRUE,
退出循環。否則查找下一行數據。

結束時,關閉文件,根據是否找到標志輸出相應的javascript腳本即可。

對于$id的使用,是PHP自動將調用的URL處?id=xxx進行了處理,可以直接使用。也可以使用
$HTTP_GET_VARS[id]。

北斗有巢氏 有巢氏北斗