首頁  >  文章  >  後端開發  >  php開發之文件指針,文件鎖定

php開發之文件指針,文件鎖定

WBOY
WBOY原創
2016-08-08 09:26:311013瀏覽

(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)

範例程式碼如下:

<code><span><span><?php</span><span>$filename</span> =<span>"1.txt"</span>;
<span>if</span> (is_file(<span>$filename</span>)) {
    <span>echo</span><span>"文件总字节数:"</span>.filesize(<span>$filename</span>).<span>"<br>"</span>;
    <span>$handle</span> =fopen(<span>$filename</span>, <span>"rb"</span>);
    <span>echo</span><span>"指针的初始位置尾:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    fseek(<span>$handle</span>, <span>25</span>);         <span>//移动指针位置</span><span>echo</span><span>"使用fseek()函数后指针的位置:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    <span>echo</span><span>"输出当前指针后面的内容:"</span>.fgets(<span>$handle</span>).<span>"<br>"</span>;
    <span>if</span> (feof(<span>$handle</span>)) {
        <span>echo</span><span>"当前指针指向文件末尾"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    }
    <span>else</span>{
        <span>echo</span><span>"当前指针没有志向末尾:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    }
    rewind(<span>$handle</span>);
    <span>echo</span><span>"使用rewind()函数后当前指针指向位置:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    <span>echo</span><span>"输出25个字节后的内容:"</span>.fgets(<span>$handle</span>,<span>25</span>).<span>"<br>"</span>;
    fclose(<span>$handle</span>);

}<span>else</span>{
    <span>echo</span><span>"文件不存在"</span>;
}

<span>?></span></span></code>

運作結果如下:

2,檔案鎖定

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

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

<code>
<?php

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


?>

</code>

運作結果如下:

以上就介紹了php開發之文件指針,文件鎖定,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn