php開發之檔案指標,檔案鎖定

來源:互聯網
上載者:User
(1) rewind() 函數
該函數將檔案handle的指標設為檔案流的開頭,文法如下:
bool rewind(resource handle)

(2)fseek() 函數
fseek()函數實現檔案指標的定位,文法如下:
int fseek(resource handle,int offset[,int whence])
handle 參數為要開啟的檔案
offset為指標位置或者相對whence的參數的位移量,可以是負值。
whence 包括以下三種:
a,SEEK_SET,位置等於offset位元組。
b, SEEK_CUR,位置等於當前位置加上offset位移量。
c, SEEK_END,位置等於檔案結尾加上offset位移量。
如果忽略 whence參數,系統預設為SEEK_SET。

(3) feof()函數
該函數用來判斷檔案指標是否是在檔案尾,文法格式如下:
bool feof(resource hanlde)
如果檔案指標到了檔案尾,就返回true,否則返回false

(4) ftell()函數
ftell()函數用來返回當前指標的位置,文法格式如下:
int ftell(resource handle)

範例程式碼如下:

$filename ="1.txt";if (is_file($filename)) {    echo"檔案總位元組數:".filesize($filename)."
"; $handle =fopen($filename, "rb"); echo"指標的初始位置尾:".ftell($handle)."
"; fseek($handle, 25); //移動指標位置echo"使用fseek()函數後指標的位置:".ftell($handle)."
"; echo"輸出當前指標後面的內容:".fgets($handle)."
"; if (feof($handle)) { echo"當前指標指向檔案末尾".ftell($handle)."
"; } else{ echo"當前指標沒有志向末尾:".ftell($handle)."
"; } rewind($handle); echo"使用rewind()函數後當前指標指向位置:".ftell($handle)."
"; echo"輸出25個位元組後的內容:".fgets($handle,25)."
"; fclose($handle);}else{ echo"檔案不存在";}?>

運行結果如下:

2,檔案鎖定

在一個檔案進行寫入操作時,需要先鎖定該檔案,以防止其他使用者同時修改此檔案。在php中,檔案的鎖定使用flock()函數來實現的。文法如下:
bool flock(int handle,int operation)
handle為一個已經開啟的檔案指標,operation的參數如下表:

鎖定,寫入,解鎖關閉檔案的範例程式碼如下:

$filename ="1.txt";$handle =fopen($filename, "w");flock($handle, LOCK_EX);$str ="MMMMMMMMMMMMMMMMMMMMM";fwrite($handle, $str);flock($handle, LOCK_UN);fclose($handle);readfile($filename);?>

運行結果如下:

以上就介紹了php開發之檔案指標,檔案鎖定,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.