PHP ファイル処理の高度なアプリケーション - ファイル ポインター

黄舟
リリース: 2023-03-07 13:50:01
オリジナル
2813 人が閲覧しました

PHPファイル処理の高度な応用 - ファイルポインタ

PHPはファイルポインタの位置決めとクエリを実現することができ、それによって必要な情報の高速なクエリを実現します。ファイルポインタ関数にはrewind()、fseek()、 feof() および ftell() 関数。

前回の記事「PHP ファイル処理の高度な応用 - リモート ファイル アクセスとファイルのロック」では、ファイルへのリモート アクセスとファイルのロック方法を紹介しましたので、まだ読んでいない方はぜひご覧ください。ここではあまり詳しく説明しません。今日は主にファイル ポインターの関数について説明します。

1: rewind() 関数

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

bool rewind ( resource $handle )
ログイン後にコピー

注:

ファイルの追加 (「a」) モードがオンになっている場合、ファイルに書き込まれたデータは、ファイル ポインターがどこにあるかに関係なく、常にファイルの既存のコンテンツの末尾に追加されます。

2: fseek() 関数

fseek() 関数は、ファイル ポインターの位置決めを実装します。 この関数の構文形式は次のとおりです:

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )
ログイン後にコピー
  • handle パラメーターは、開かれるファイルです。 。

  • offset はポインターの位置、または whence パラメーターを基準としたオフセットであり、負の値にすることもできます。

  • の値には次の3種類があります:

1、位置はオフセットバイトに等しい。

2. SEEK_CUR、位置は現在位置にオフセット バイトを加えたものと等しくなります。

3. SEEK_END、位置はファイルの末尾にオフセット バイトを加えたものと等しくなります。

whence パラメーターを省略した場合、システムはデフォルトで SEEK_SET を使用します。

3: feof() 関数

この関数は、ファイル ポインターがファイルの最後にあるかどうかを判断します。 関数の構文は次のとおりです。

bool feof ( resource $handle )
ログイン後にコピー

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

4: ftell() 関数

ftell() 関数は、現在のポインターの位置を返します。 この関数の構文形式は次のとおりです。

int ftell ( resource $handle )
ログイン後にコピー

以下は、上記 4 つのポインターの使用例です。ファイルの内容を出力する関数は次のとおりです:

<?php
header("Content-Type:text/html; charset=utf-8");
$filename = "tm.txt";        //指定文件路径及文件名
if(is_file($filename)){      //判断文件是否存在
    echo "文件总字节数:".filesize($filename)."<br>"; //输出总字节数
    $fopen = fopen($filename,"rb");                 // 打开文件
    echo "初始指针位置是:".ftell($fopen)."<br>";     //输出指针位置
    fseek($fopen,33);                               //制动指针
    echo "使用fseek()函数后指针位置:".ftell($fopen)."<br>";  //输出制动后的指针位置
    echo "输出当前指针后面的内容:".fgets($fopen)."<br>";     //输出从当前指针到行尾的内容
    if (feof($fopen)){                                     //判断指针是否指向文件末尾
        echo "当前指针指向文件末尾:".ftell($fopen)."<br>";   //如果指向了文件尾,则输出指针位置
        rewind($fopen);                                    //使用rewind()函数
        echo "使用 rewind()函数后指针的位置:".ftell($fopen)."<br>"; //查看使用rewind()函数后指针的位置
        echo "输出前33个字节的内容:".fgets($fopen,33);             //输出前33个字节的内容
        fclose($fopen);                                          //关闭文件
    }else{
        echo "文件不存在";
    }
}
?>
ログイン後にコピー

出力結果は次のとおりです:

PHP ファイル処理の高度なアプリケーション - ファイル ポインター

これで PHP ファイル処理の高度なアプリケーションの紹介は終わりです。 次に、PHP ファイルのアップロードを紹介します。詳細については、「php ファイルのアップロード - php.inn ファイルと定義済み変数 $_FILES を設定する」をご覧ください。

以上がPHP ファイル処理の高度なアプリケーション - ファイル ポインターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート