由于 flock() 需要一個(gè)文件指針,因此可能不得不用一個(gè)特殊的鎖定文件來保護(hù)打算通過寫模式打開的文件的訪問(在 fopen() 函數(shù)中加入 \\\"w\\\" 或 \\\"w+\\\"),實(shí)例代碼如下:
- fp = fopen("test.txt", 'ab'); //from the end
- flock($fp, lock_ex); //lock the file for waiting...
- fwrite($fp, 'just a test string.......'); //start writing...
- flock($fp, lock_un); //release write lock
- fclose($fp); //close the file讀操作:
- //read
- $fp = fopen("test.txt", 'r');
- flock($fp, lock_sh);
- //read from the file.......
- flock($fp, lock_un);
- <?php
- $fp = fopen("/tmp/lock.txt", "w+");
- if (flock($fp, lock_ex)) { // 進(jìn)行排它型鎖定
- fwrite($fp, "write something here ");
- flock($fp, lock_un); // 釋放鎖定
- } else {
- echo "couldn't lock the file !";
- }//開源軟件:phpfensi.com
- fclose($fp);
- ?>
flock() 不能用于 nfs 以及其它一些網(wǎng)絡(luò)文件系統(tǒng),詳細(xì)資料查看自己操作系統(tǒng)的文檔,在部分操作系統(tǒng)中 flock() 以進(jìn)程級實(shí)現(xiàn),當(dāng)用一個(gè)多線程服務(wù)器 api,比如 isapi時(shí),可能不可以依靠 flock() 來保護(hù)文件,因?yàn)檫\(yùn)行于同一服務(wù)器實(shí)例中其它并行線程的 php 腳本可以對該文件進(jìn)行處理.
轉(zhuǎn)載請注明來源:php flock函數(shù)實(shí)例哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。
