-
作者: ?Mukul翻訳:?無胜?
ファイルの読み取り:[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";?//?読み込むファイルの絶対パス:?homedata.dat??$file_pointer?=?fopen($ file_name,?"r");?//? ファイルを開きます。「r」はモード、または実行する操作方法です。詳細については、この記事の後半の説明を参照してください。 > ?
- $file_read
?=?fread($ file_pointer,?ファイルサイズ($file_name));?- //?ファイル ポインタを介してファイルの内容を読み取ります
?- fclose
($file_pointer) ;?- //?ファイルを閉じる
?- print
?"読み取ったファイルの内容は次のとおりです:?$file_read";?- //?ファイルの内容を表示
?>? ?
ファイルの書き込み:[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";?//?絶対パス:?homedata.dat??$file_pointer?=?fopen($ file_name,?"w");?//?"w" はモードです。詳細については以下を参照してください?fwrite($file_pointer,?「何?あなた?書き込みたいですか?");?//?最初にファイルを 0 バイトにカットし、次に を書き込みます?fclose($file_pointer) ;?//?終了?print?"データがファイルに正常に書き込まれました";???>??
がファイルの末尾に追加されます:[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";?//?絶対パス:?homedata.dat??$file_pointer?=?fopen($ file_name,?"a");?//?"w" モード?fwrite($file_pointer,?「何?あなた?追加したいですか?");?//?ファイルを 0 バイトにカットしないでください。?データをファイルの末尾に追加します?fclose($file_pointer) ;?//?終了?print?"データはファイルに正常に追加されました";???>??
上記はほんの簡単な紹介であり、以下ではさらに深い内容について説明します。
場合によっては、複数人が書き込みを行うことがあります (トラフィックが多い Web サイトで最も一般的です)。その場合、ファイルに無駄なデータが書き込まれます。例:
info.file ファイルの内容は次のとおりです?->?
|1|Mukul|15| Male|India?(n)?
|2|Linus|31|男性|フィンランド?(n)?
現在 2 人が同時に登録されているため、ファイルが破損しています->?
info.file?->?
|1|ムクル|15|男性|インド?
|2| ライナス|31|男性|フィンランド?
|3|ロブ|27|男性|アメリカ|?
ビル|29|男性|アメリカ?
上記の例では、PHP が Rob の情報をファイルに書き込むときに、Bill も書き込みを開始します。このとき、Rob のレコードの「n」を書き込む必要があるため、問題が発生します。破損するファイル。
もちろん、これは起こってほしくないので、ファイルのロックを見てみましょう:[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";??$file_pointer?=?fopen($ file_name,?"r");??$lock?=?flock($ file_pointer,?LOCK_SH);?//?私は 4.0.2 を使用しているため、LOCK_SH を使用するには、?1 として直接記述する必要があるかもしれません。??if?($lock)?{??$file_read?=?fread($ file_pointer,?ファイルサイズ($file_name));?$lock?=?flock($ file_pointer,?LOCK_UN);?//バージョンが PHP4.0.2 より小さい場合は、LOCK_UN の代わりに 3 を使用します?}??fclose($file_pointer) ;??print?"ファイルの内容は?$file_read";???>??
上記の例では、read.php と read2.php の両方のファイルがファイルにアクセスする必要がある場合、どちらも読み取ることができますが、プログラムが書き込む必要がある場合は、読み取り操作が完了するまで待機する必要があります。そしてファイルが解放されます。[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";??$file_pointer?=?fopen($ file_name,?"w");??$lock?=?flock($ file_pointer,?LOCK_EX);?//バージョンが PHP4.0.2 より前の場合は、LOCK_EX の代わりに 2 を使用してください?if?($lock)?{??fwrite($file_pointer,?"何?書き込みたいですか?");?flock($file_pointer,?LOCK_UN) ;?//バージョンが PHP4.0.2 より低い場合は、LOCK_UN の代わりに 3 を使用します?}??fclose($file_pointer) ;??print?"データがファイルに正常に書き込まれました";???>??
ファイルの上書きには「w」モードが使用されますが、これは適用できないと思います。[クリップボードにコピー] PHP コード:-
??$file_name?=?"data.dat";??