您好,登錄后才能下訂單哦!
/* * 文件的鎖定機(jī)制 * flock()輕便的咨詢文件鎖定 * LOCK_SH取得共享鎖定(讀取的程序)。 * LOCK_EX 取得獨(dú)占鎖定(寫(xiě)入的程序。 * LOCK_UN 釋放鎖定(無(wú)論共享或獨(dú)占)。 * 如果不希望 flock() 在鎖定時(shí)堵塞,則是 LOCK_NB(Windows 上還不支持)。 * */ /* * 留言板 */ $filename = "message.txt"; if(isset($_POST['dosubmit'])){ //字段的分隔|| 行的分隔[n] $mess = "{$_POST['username']}||".time()."||{$_POST['title']}||{$_POST['content']}[n]"; writemessage($filename, $mess); } if(file_exists($filename)){ readmessage($filename); } //讀信息 function readmessage($filename){ // $mess = file_get_contents($filename); $mess = ""; $fp = fopen($filename, "r"); flock($fp, LOCK_SH+LOCK_NB);//讀鎖定 while(!feof($fp)){ $mess .=fread($fp, 1024); } flock($fp, LOCK_UN+LOCK_NB);//釋放鎖 $mess = rtrim($mess,"[n]"); $arrmess = explode("[n]", $mess); foreach($arrmess as $m){ list($username,$daytime,$title,$content) = explode("||", $m); echo "<b>{$username}</b>,".date('Y-m-d H:i:s',$daytime).",<i>{$title}</i><br/><u>{$content}</u><br/><br/><br/>"; } fclose($fp); } //寫(xiě)信息 function writemessage($filename,$mess){ $fp = fopen($filename, "a"); //鎖定文件 if(flock($fp, LOCK_EX+LOCK_NB)){ fwrite($fp, $mess); flock($fp,LOCK_UN+LOCK_NB);//釋放文件 }else{ echo '寫(xiě)入鎖定失敗!'; } fclose($fp); } ?> <form action="index.php" method="post"> 用戶名:<input type="text" name="username" value=""/><br/> 標(biāo)題:<input type="text" name="title" value=""/><br/> 內(nèi)容:<textarea name="content" cols="40" rows="4"></textarea><br/> <input type="submit" name="dosubmit" value="留言"/> </form>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。