明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

如何將PHP的結(jié)果輸出到非PHP頁面中

[摘要]這個問題是當(dāng)我自已實現(xiàn)了統(tǒng)計計數(shù)之后,我想將它的輸出用在我的不支持PHP功能的頁面中,那么應(yīng)該如何做呢?主要的解決辦法是輸出一段javascript腳本即可。這個是很有用的,比如實現(xiàn)動態(tài)新聞, 廣告輪詢,當(dāng)然這里是講如何把某個程序的下載計數(shù)輸出到非PHP頁面中去。   先讓我們設(shè)想一下:我已經(jīng)有了...
這個問題是當(dāng)我自已實現(xiàn)了統(tǒng)計計數(shù)之后,我想將它的輸出用在我的不支持PHP功能的頁面中,那么應(yīng)該如何做呢?主要的解決辦法是輸出一段javascript腳本即可。這個是很有用的,比如實現(xiàn)動態(tài)新聞, 廣告輪詢,當(dāng)然這里是講如何把某個程序的下載計數(shù)輸出到非PHP頁面中去。

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

  第一步:寫Javascript腳本

  很簡單:

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


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

  好了,知道應(yīng)該輸出什么樣的內(nèi)容了,就可以寫php程序了。

  第二步:輸出結(jié)果



<?
$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。再是一個循環(huán),條件是文件沒有結(jié)束。

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

  結(jié)束時,關(guān)閉文件,根據(jù)是否找到標(biāo)志輸出相應(yīng)的javascript腳本即可。

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