PHP實現(xiàn)網(wǎng)頁自動更新塊
作者: 陳新征 出處: 天極網(wǎng)
前言:現(xiàn)在很多有個人主頁或者博客的朋友選擇租用虛擬主機,而相當一部分虛擬主機支持php。如果你有一個支持php的主機空間,有沒有用php把自己的網(wǎng)站武裝起來呢?
能不能讓php為你的網(wǎng)頁添加一些每隔一段時間就自動更新的內(nèi)容,以更好的吸引訪客呢?實現(xiàn)這一功能并不需要太高深的編程知識,請看以下例子:
(一)英語諺語
讓我們來看一個簡單的應(yīng)用:讓php程序從數(shù)據(jù)庫中隨機提取一行記錄,顯示在網(wǎng)頁上,隔15分鐘再去讀取另一條記錄。英漢對照的諺語是個適合顯示的內(nèi)容。
考慮到放置個人主頁的廉價虛擬主機多數(shù)不支持MySQL之類的數(shù)據(jù)庫,我們使用文本型數(shù)據(jù)文件來存放數(shù)據(jù),這對于流量不很大的網(wǎng)站來說足夠了。建立一個文本文件,命名為english.dat,內(nèi)容如下:
A bad beginning makes a bad ending. 惡其始者必惡其終。
A bad bush is better than the open field. 有勝于無。
A bad compromise is better than a good lawsuit. 吃虧的和解也比勝訴強。
A bad conscience is a snake in one’s heart. 做賊心虛。
A bad custom is like a good cake, better broken than kept. 壞習慣像鮮餡餅,分食要比保存好。
A bad padlock invites a picklock. 開門揖盜。
……
注意,每行是一條完整的記錄,中間不要換行;文件中不能有半角的雙引號( ' )否則在輸出數(shù)據(jù)時程序會解析出錯。網(wǎng)上有很多這樣的內(nèi)容,搜索一下即可,也可以去我的網(wǎng)站http://www.musicfly.net/english.dat下載一個數(shù)據(jù)文件。
下面就是編寫讀取數(shù)據(jù)的程序了。建立一個文本文件,命名為english.dat,加入源代碼如下:
<?php$filename = ’english.dat’; //數(shù)據(jù)文件名$refresh = 900; //更新周期(以秒為單位,可根據(jù)需要自行調(diào)整)$data = file($filename); //將數(shù)據(jù)文件裝入一個數(shù)組$num_lines = count($data); //數(shù)據(jù)文件行數(shù),也就是記錄條數(shù) mt_srand(floor(time() / $refresh));$id = mt_rand(0, $num_lines - 1); //隨機選擇一條記錄號$content = chop($data[$id]); //根據(jù)記錄號選擇相應(yīng)的數(shù)據(jù),并截去最后的換行符
echo 'document.write('$content');'; //用javascript形式輸出數(shù)據(jù)?>;
將english.dat和english.php存盤,上傳至服務(wù)器的同一個目錄下。
最后一道工序就是讓你的網(wǎng)頁調(diào)用這個php程序來顯示內(nèi)容了。因為php運行的結(jié)果是以javascript形式輸出的,我們只要把這段php當成一段javascrupt來調(diào)用即可,方法是:用記事本或網(wǎng)頁編輯軟件打開你要修改的html文件,在你想讓動態(tài)內(nèi)容顯示的位置加入以下代碼:
<script language='javascript' src='http://www.aoyou183.cn/bcjs/english.php'></script>
注意,如果你修改的html文件和english.php不在一個目錄下,要在src='http://www.aoyou183.cn/bcjs/...'里注明english.php的相對路徑。
把這個修改后的html文件上傳至服務(wù)器,在瀏覽器中打開。如果你每一步做得都正確,應(yīng)該就可以看到數(shù)據(jù)文件中的內(nèi)容顯示出來了!過15分鐘刷新一下頁面看看,是不是顯示的內(nèi)容變化了?而你并沒有為更新這些內(nèi)容做什么額外的勞動,php程序為你做了。
如果你的朋友想在自己的網(wǎng)頁或者博客上實現(xiàn)同樣的功能而又沒有支持php的主機,可以通過以<script language='javascript' src='http://你的網(wǎng)址/程序路徑/english.php'></script>的方式調(diào)用你主機上的程序來顯示同樣的內(nèi)容。
當然,這個程序還可能存在編碼方式不兼容的問題,因為內(nèi)容都是以gb2312編碼顯示出來的,用在UTF編碼的網(wǎng)頁上,中文會變成亂碼。解決的方法不在本文的討論范圍內(nèi),請搜索有關(guān)教程。
實現(xiàn)了這個功能,你已經(jīng)開始從html的靜態(tài)世界向php的動態(tài)世界進軍了。來日方長,下一次,讓我們看看怎樣用php為你的網(wǎng)頁加個“每日星座運勢”功能。
(本文的程序均在php4/php5環(huán)境下運行通過。)
