ホームページ  >  記事  >  バックエンド開発  >  PHP開発ファイルポインタ、ファイルロック

PHP開発ファイルポインタ、ファイルロック

WBOY
WBOYオリジナル
2016-08-08 09:26:311045ブラウズ

(1) rewind()関数
この関数は、ファイル ハンドルのポインターをファイル ストリームの先頭に設定します。構文は次のとおりです。 bool rewind(リソースハンドル)

(2)fseek()関数
fseek() 関数は、ファイル ポインターの位置決めを実装します。構文は次のとおりです。 int fseek(リソースハンドル,int offset[,int whence])
ハンドルパラメータは開かれるファイルです
offset はポインターの位置、または wherece パラメーターに対する相対的なオフセットであり、負の値にすることもできます。
wherece には次の 3 つのタイプが含まれます:
a、SEEK_SET、位置はオフセットバイトに等しい。
b、SEEK_CUR、位置は現在位置にオフセット offset を加えたものと等しくなります。
c、SEEK_END、位置はファイルの末尾にオフセット offset を加えたものと等しくなります。
whence パラメータが省略された場合、システムはデフォルトで SEEK_SET を使用します。

(3) feof() 関数

この関数は、ファイル ポインターがファイルの末尾にあるかどうかを判断するために使用されます。構文形式は次のとおりです。 bool feof(リソースハンデ)

ファイルポインタがファイルの末尾に達すると true を返し、それ以外の場合は false を返します

(4) ftell() 関数
ftell() 関数は、現在のポインターの位置を返すために使用されます。構文形式は次のとおりです。 int ftell(リソース ハンドル)

サンプル コードは次のとおりです:

<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 ハンドル、int 操作)

handle は開いているファイル ポインタであり、操作パラメータは次のとおりです:



ファイルのロック、書き込み、ロック解除、およびクローズのサンプル コードは次のとおりです:

<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 までご連絡ください。