前言:現在很多有個人首頁或者部落格的朋友選擇租用虛擬機器主機,而相當一部分虛擬機器主機支援PHP。如果你有一個支援php的主機空間,有沒有用php把自己的網站武裝起來呢?
能不能讓php為你的網頁添加一些每隔一段時間就自動更新的內容,以更好的吸引訪客呢?實現這一功能並不需要太高深的編程知識,請看以下例子:
(一)英語諺語
讓我們來看一個簡單的應用:讓php程式從資料庫中隨機提取一行記錄,顯示在網頁上,隔15分鐘再去讀取另一條記錄。英漢對照的諺語是個適合顯示的內容。
考慮到放置個人首頁的廉價虛擬機器主機多數不支援MySQL之類的資料庫,我們使用文本型資料檔案來存放資料,這對於流量不很大的網站來說足夠了。建立一個文字檔,命名為english.dat,內容如下:
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. 開門揖盜。
……
注意,每行是一條完整的記錄,中間不要換行;檔案中不能有半形的雙引號( " )否則在輸出資料時程式會解析出錯。網上有很多這樣的內容,搜尋一下即可,也可以去我的網站http://www.musicfly.net/english.dat下載一個資料檔案。
下面就是編寫讀取資料的程式了。建立一個文字檔,命名為english.dat,加入原始碼如下:
$filename = ’english.dat’; //資料檔案名
$refresh = 900; //更新周期(以秒為單位,可根據需要自行調整)
$data = file($filename); //將資料檔案裝入一個數組
$num_lines = count($data); //資料檔案行數,也就是記錄條數 mt_srand(floor(time() / $refresh));
$id = mt_rand(0, $num_lines - 1); //隨機播放一條記錄號
$content = chop($data[$id]); //根據記錄號選擇相應的資料,並截去最後的分行符號
echo "document.write("$content");"; //用javascript形式輸出資料
?>
將english.dat和english.php存檔,上傳至伺服器的同一個目錄下。
最後一道工序就是讓你的網頁調用這個php程式來顯示內容了。因為php啟動並執行結果是以javascript形式輸出的,我們只要把這段php當成一段Javascrupt來調用即可,方法是:用記事本或網頁編輯軟體開啟你要修改的HTML檔案,在你想讓動態內容顯示的位置加入以下代碼:
注意,如果你修改的html檔案和english.php不在一個目錄下,要在src="..."裡註明english.php的相對路徑。
把這個修改後的html檔案上傳至伺服器,在瀏覽器中開啟。如果你每一步做得都正確,應該就可以看到資料檔案中的內容顯示出來了!過15分鐘重新整理一下頁面看看,是不是顯示的內容變化了?而你並沒有為更新這些內容做什麼額外的勞動,php程式為你做了。
如果你的朋友想在自己的網頁或者部落格上實現同樣的功能而又沒有支援php的主機,可以通過以的方式調用你主機上的程式來顯示同樣的內容。
當然,這個程式還可能存在編碼方式不相容的問題,因為內容都是以gb2312編碼顯示出來的,用在UTF編碼的網頁上,中文會變成亂碼。解決的方法不在本文的討論範圍內,請搜尋有關教程。
實現了這個功能,你已經開始從html的靜態世界向php的動態世界進軍了。來日方長,下一次,讓我們看看怎樣用php為你的網頁加個“每日星座運勢”功能。