|
|
第一個檔案:a.htm
<form action='b.php' method=post> 大名<input type=text name='UserName' value='路人'><br> 族群 <select name='UserGroup'> <option>晨曦之鄉 <option>PHP同好會 <option>路過的人 </select><br>
留言 <textarea name='UserSay'>內容</textarea><br>
<input type=submit value='確定'> <input type=reset value='取消'> </form> |
第二個檔案:b.php
<?php $NewMsg = "<br><br>留言時間是:". date("Y/m/d H:i:s"). "<br>你的大名是:". $UserName. "<br>你的族群是:". $UserGroup. "<br>你的留言是:". $UserSay;
$FileName = "Message.txt"; if (file_exists($FileName)) { $fp = fopen($FileName, "r+"); $OldMsg = fread($fp, filesize($FileName)); rewind($fp); } else { $fp = fopen($FileName, "w"); $OldMsg = ""; } fwrite($fp, $NewMsg.$OldMsg); fclose($fp); echo "<br>新留言是:".$NewMsg; echo "<br>舊留言是:".$OldMsg; ?> |
函式:
- date(格式)
依"格式"顯示目前日期與時間,例"Y"(西元年) "m"(月) "d"(日) "h"(時) "i"(分) "s"(秒) "w"(星期),中間的"-"或"/"或":"可自由搭配。
- file_exists(檔名$fn)
判斷"$fn"檔案是否存在。
- fopen(檔名$fn, 開檔型態)
常見開檔型態有"w"(write) "r"(read) "r+"(read+write) "a"(append)。$fp=fopen()把值放入"變數指標$fp",才能做fread()或fwrite()。
- fread(檔案指標$fp, 讀取長度)
從"$fp"所指向的檔案,取得指定長度的資料。
- filesize(檔名$fn)
取得"$fn"檔案的總長度。
- rewind(檔案指標$fp)
移動記錄指標到"$fp"所指向的檔案的最開頭位置。
- fwrite(檔案指標$fp, 要寫入的值)
把值寫入"$fp"所指向的檔案內。
- fclose(檔案指標$fp)
關閉"$fp"所指向的檔案 |
說明:
- 把新留言放入變數$NewMsg(方式可參見前一範例)。
- 先判斷留言檔案是否存在,存在則以"r+"的方式開檔;不存在則以"w"的方式開檔。
- 讀出舊留言,並放入變數$OldMsg。
- 用句點(.)合併新留言$NewMsg和舊留言$OldMsg,存回檔案。
- 多按幾次「重整」,就可以看到留言記錄增加情形。
- 留言檔Message.txt及存放留言檔的目錄要設成有write的屬性,例如chmod a+w Message.txt和chmod a+w 目錄名。
- 將fwrite($fp, $NewMsg.$OldMsg)改成fwrite($fp, $OldMsg.$NewMsg),再看看結果有什麼不同。
| |
|