ホームページ  >  記事  >  バックエンド開発  >  PHPファイルの基本操作例の共有

PHPファイルの基本操作例の共有

小云云
小云云オリジナル
2018-03-20 13:27:151056ブラウズ


この記事では主に PHP ファイルの基本的な操作例を紹介します。まずは、PHP ファイルの読み取りと書き込みの基本的な操作を説明します。

読み取りと書き込みの基本操作

  • ファイル書き込み関数: file_put_contents()

    • FILE_USE_INCLUDE_PATH : ファイル名の組み込みパスを確認します copy

    • LOCK_EX :ファイルをロックします

    • FILE_APPEND : ファイルの末尾に移動します。それ以外の場合、ファイルの内容はクリアされます

    • 構文:

      int file_put_contents(file,data,mode,context)int file_put_contents(file,data,mode,context)

      参数 描述
      file 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
      data 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。
      mode 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX
      context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。
    • 返回值:该函数将返回写入到文件内数据的字节数。

    • mode参数说明

    • 与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

  • 读文件函数:file_get_contents()

    • 语法:

      string file_put_contents(path,include_path,context,start,max_length)

      パラメータ説明ファイルは必須です。データを書き込むファイルを指定します。ファイルが存在しない場合は、新しいファイルが作成されます。 データはオプションです。ファイルに書き込むデータを指定します。文字列、1 次元配列、またはデータ ストリームを指定できます。 モードはオプションです。ファイルを開く/書き込む方法。可能な値: FILE_USE_INCLUDE_PATH、FILE_APPEND、LOCK_EXcontextオプション。ファイルハンドルの環境を指定します。 context は、ストリームの動作を変更できるオプションのセットです。 null が使用された場合、それは無視されます。
      戻り値: この関数は、ファイルに書き込まれたデータのバイト数を返します。
      modeパラメータの説明 🎜🎜🎜🎜🎜は、fopen()、fwrite()、fclose()を順番に呼び出すのと同じ機能を持ちます。 🎜🎜
    🎜🎜ファイル読み取り関数: file_get_contents()🎜🎜🎜🎜🎜 構文: 🎜🎜string file_put_contents(path,include_path,context,start,max_length)🎜🎜🎜🎜🎜パラメータ🎜🎜説明🎜🎜🎜🎜🎜🎜パス🎜🎜は必須です。読み込むファイルを指定します。外部 URL にすることもできます🎜🎜🎜🎜include_path🎜🎜 オプション。 include_path 内のファイルも検索したい場合は、このパラメータを「1」に設定できます。 🎜🎜🎜🎜コンテキスト🎜🎜オプション。ファイルハンドルの環境を指定します。 🎜🎜🎜🎜開始🎜🎜オプション。ファイル内の読み取りを開始する位置を指定します。このパラメータは PHP 5.1 の新しいパラメータです。 🎜🎜🎜🎜max_length🎜🎜オプション。読み取るバイト数を指定します。このパラメータは PHP 5.1 の新しいパラメータです。 🎜🎜🎜🎜
  • 戻り値: 読み取られた文字列。 anotherが一般的に使用されているファイルfuncions

unlink()deletefile

  • nename()file move(rename)

  • filesize()filesize

  • file_exists()ファイルかどうか存在します

  • Filemtime() ファイルの最終変更時刻!

  • ファイルハンドルの読み取りおよび書き込み操作

  • ほとんどのファイルの読み取りおよび書き込みは、関数 File_put_contents、file_get_contents を使用して完了します。
特殊なケースでは、上記 2 つの機能は使いにくい場合があります。

通常、ファイルは大きすぎます。パーツごとに操作するしかない!

基本単位はバイトです:




fopen() 関数はファイルまたは URL を開きます。

オープンに失敗した場合、この関数は FALSE を返します。
    ファイルハンドル、PHPプログラムとファイル間のデータパスを開きます!
  • ファイルアドレスとオープンモードという 2 つのパラメータが必要です!

    オープンモード: ファイルを開いた後に実行する必要がある操作を指定します。次のモードを選択できます:



    r: 読み取り、読み取りモード。

    • w: 書き込み、書き込み操作、書き込みのクリア。

    • a: 追加、書き込み操作、追加書き込み。

    • x: 新しい書き込みは、操作用の新しいファイルを作成することしかできません。これは、w

    • + 拡張モードに似た書き込み操作です。拡張操作は読み取りおよび書き込み操作を完了できます。

      a033f09b1a547cc02045060a89d4ed93
    • ファイルハンドル読み込み関数 fread(),fgetc(),fgets(),feof();

  • 1バイトデータ = fgetc(handle); //マルチの場合は文字化けするバイト文字

    バイトが読み取られるたびに、ファイルポインタを 1 バイトずつ進めます。ハンドル操作では、ファイル ポインターに依存します。
    • String = fgets(handle, length)
      読み込み時に改行文字を先に読んだ場合も終了します。ライン読み上げ機能とも呼ばれます!典型的なロジックでは、各行に一連の情報が記録されます。この関数は最もよく使用されます。

    • feof() はファイルの終わりに達したかどうかを判断します
      ファイルのすべての情報を読み取ります 例:

      <?php
          $handle = fopen(&#39;./langref.txt&#39;,&#39;r&#39;);
          while (! feof($handle)) {
              $line = fgets($handle,1024);
              echo $line . "</br>";
          }
      ?>
    • String = fread(handle, length)
      長さに基づいて内容を読み取ります。 fgets とは異なり、改行文字の影響を受けません。 制限事項

      唯一の制限事項: 最大長は 8192 を超えることはできません!


    • ファイルハンドル書き込み関数 fwrite($handle, content)

  • ハンドルを閉じる fclose($handle )

  • ポインタ操作関数


  • fseek(ハンドル、位置)、位置設定ポインタ、位置は0から始まり増加していきます!

    • ftell(ハンドル)、ポインターの位置を取得します!

    • ファイルの同時操作(ファイルロック)

    デフォルトでは、PHPのファイル操作機能はブロック状態ではありません。フリー稼働状況。したがって、ファイルを同時に操作すると、エラーが発生しやすくなります。あるスクリプト操作が他のスクリプト操作をブロックする必要がある場合は、ファイル ロックを使用する必要があります。

ロック操作プロセス:

最初にロックを追加し、ロックが正常に追加されたかどうかを確認し、成功した場合は再度使用します。

ロックの種類:

読み取りロック: s-lock (share-lock) 共有ロック、読み取り操作の前に予期される追加のロック。その結果、同時読み取りが許可され、追加の書き込み操作はブロックされます。

  • 書き込みロック: x-lock (exclusive-lock) 排他的ロック、排他的ロック、書き込み操作の前にロックの種類を追加してみてください。その結果、他のスクリプトは読み書きできなくなります。

  • 意図ロック: リソースを操作するすべてのスクリプトは、ファイル ロックを使用する規則 (規則) に従います。

  • flock($handle, lock type);

    タイプ:

LOCK_SH 読み取りロック

  • LOCK_EX 書き込みロック

  • LOCK_UN

    <?php
        //*********脚本1,想要读取文件信息***********
        //尝试加读锁
        $lock_result= flock($handle, LOCK_SH);
        //判断锁定结果
        if(!$lock_result){
            die(&#39;锁定失败,不能操作文件&#39;);
        }
        //文件操作
        $str = fgets($handle, 1024);
        var_dump($str);
    
        sleep(5);
        echo &#39;<br>&#39;;
        $str = fgets($handle, 1024);
        var_dump($str);
        flock($handle, LOCK_UN);//解锁
    ?>
    
    <?php
        //*********脚本2,想要往文件里写入信息***********
        //尝试加写锁
        $lock_result= flock($handle, LOCK_EX);
        //判断锁定结果
        if(!$lock_result){
            die(&#39;锁定失败,不能操作文件&#39;);
        }
        //文件操作
        $result = fwrite($handle, &#39;123456&#39;);
        flock($handle, LOCK_UN);//解锁
    ?>

    によってロック解除される 上記のスクリプト 2 が待機する必要がある場合 (ブロックされました状態) スクリプト 1 は完了するまで実行されません。
  • ロックが失敗したときにブロックしないようにするには、LOCK_NB を使用することができます。

    Flock ($handle, LOCK_UN) でロックを強制的に解除し、

    Fclose() で自動的にロックを解除します。

関連する推奨事項:

  • PHPファイル操作の例の共有

  • phpファイルのアップロードの基本的な紹介

phpファイルのアップロードの簡単な例の共有

以上がPHPファイルの基本操作例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。