(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教程有興趣的朋友有所協助。