ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHPチュートリアルでのdatファイルの読み書き操作の詳細説明
PHPでは、どのような種類のファイルを読み込む場合でも、fopen関数を使用して、他の関数と連携して動作させることがほとんどです。 次に、datデータファイルを読み込む方法を紹介します。
以下は、基本的なファイルの読み取りと書き込み操作に関する記事です。私はこの記事を読んで基本的なファイル操作を学びました。内容をクリップボードにコピーします。
コードをコピー | |
$file_name = "data.dat";
// 読み込むファイルの絶対パス: homedata.dat
// ファイルを開きます。「r」はモード、または実行する操作メソッドです。詳細については、この記事の後半の紹介を参照してください
// ファイルポインタを介してファイルの内容を読み取ります
//ファイルを閉じる
// ファイルの内容を表示します |
コードをコピー | |
$file_name = "data.dat";
// 絶対パス: homedata.dat
// "w" はモードです。詳細については以下を参照してください
// まずファイルを 0 バイトにカットしてから、
// 終了 ?>
|
コードをコピー | |
$file_name = "data.dat";
// 絶対パス: homedata.dat
// 「w」モード
// ファイルを 0 バイトに切り取らず、ファイルの最後にデータを追加します
// 終了 ?>
|
複数の人が書き込みを行う場合があり (トラフィックの多い Web サイトで最も一般的です)、その結果、次のような無駄なデータがファイルに書き込まれます。
info.fileファイルの内容は以下の通りです
->
|1|ムクル|15|男性|インド (n)
|2|ライナス|31|男性|フィンランド (n) 同時に 2 人が登録されているため、ファイルが破損しています
->
info.file ->
|1|ムクル|15|男性|インド
|2|ライナス|31|男性|フィンランド
|3|ロブ|27|男性|アメリカ|
Bill|29|男性|USA 上記の例では、PHP が Rob の情報をファイルに書き込むときに、Bill も書き込みを開始します。このとき、Rob のレコードの「n」を書き込む必要があり、ファイルが書き込まれます。破損した。
これは絶対に起こってほしくないので、ファイルのロックを見てみましょう: コンテンツをクリップボードにコピーします
コードをコピー | |||||
$file_name = "data.dat"; $file_pointer = fopen($file_name, "r"); $lock = flock($file_pointer, LOCK_SH); // 私は 4.0.2 を使用しているので、LOCK_SH を使用するには、1 として直接記述する必要があるかもしれません。
$file_read = fread($file_pointer, filesize($file_name)); $lock = flock($file_pointer, LOCK_UN);
// バージョンが PHP4.0.2 より小さい場合は、LOCK_UN の代わりに 3 を使用します fclose($file_pointer);
|
コードは次のとおりです | コードをコピー |
$file_name = "data.dat"; $file_pointer = fopen($file_name, "w"); $lock = flock($file_pointer, LOCK_EX); if ($lock) { fwrite($file_pointer, "何を書きたいか"); } fclose($file_pointer); print "データはファイルに正常に書き込まれました"; ?> |
うーん...、データの追加は他の操作とは少し異なります。それが FSEEK です。ファイル ポインターがファイルの最後にあることを常に確認するのが良い習慣です。
Windows システムの場合、上記のファイルの前に '' を付ける必要があります。
群れのトーク:
Flock() は、ファイルが開かれた後にのみファイルをロックします。 上記の列では、ファイルは開かれた後にロックされますが、ファイルの内容はその時点の内容のみであり、他のプログラム操作の結果は反映されません。そのため、fseek はファイルの追加だけに使用する必要はありません。操作だけでなく、読み取り操作も可能です。
(ここでの翻訳は正確ではないかもしれませんが、アイデアは理解できると思います)。
パターンについて:
'r' - 読み取り専用モードで開き、ファイルポインタはファイルの先頭に配置されます
'r+' - 読み取り/書き込みモードで開き、ファイルポインタはファイルの先頭に配置されます
'w' - 書き込み専用に開きます。ファイルポインタはファイルの先頭に配置され、ファイルは 0 バイトにカットされます。ファイルが存在しない場合は、ファイルの作成を試みます
「w+」 - 読み取りおよび書き込み用に開きます。ファイル ポインターはファイル ヘッダーに配置され、ファイル サイズは 0 バイトにカットされます。ファイルが存在しない場合は、ファイルの作成を試みます
'a' - 書き込み専用モードで開きます。ファイルポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、ファイルの作成を試みます
'a+' - 読み取りおよび書き込み用に開きます。ファイル ポインターはファイルの末尾に配置されます。ファイルが存在しない場合は、ファイルの作成を試みます