PHPファイル操作実現コード共有


データをファイルに書き込むか読み込むかは、基本的には三つのステップに分けられます。1つのファイルを開く(存在すれば)2.ファイルを書く/読む3.このファイルlを閉じてファイルを開く前に、このファイルのパスとファイルが存在するかどうかを知る必要があります。を使うSERVER["DOCUMENT_"ROOT」]グローバル変数を内蔵して、サイトの相対パスを取得します。下の通りですSERVER["DOCUMENT_"ROOT;関数でfile_exists()はファイルが存在するかどうかを検出します。If(file_exists(「$root/order.txt」)このファイルをfopen()関数で開きます。fp=fopen(「$root/order.txt」、'ab')fopen()関数は、2つまたは3つまたは4つのパラメータを受け入れます。最初のパラメータはファイルパスで、二つ目は操作方式(読み/書き/追加など)で、必ずパラメータを選択します。fp=fopen(「$root/order.txt」、'ab')三つ目はオプションパラメータです。PHPが必要ならinclude_パスまたはディレクトリ名を提供する必要がないファイルを検索します。fp=fopen(「order.txt」、「ab」、true);第四のオプションパラメータとしては、ファイル名がプロトコル名で開始され(http:/)、リモートの場所でこのファイルを開くことができます。ftpなどの他のプロトコルもサポートされています。fopen()がファイルを開くことに成功したら、このファイルを指すポインタを返します。上に私たちは$fp変数に保存しました。
添付ファイルパターン図
はファイルを書いてPHPにファイルを書くのが簡単です。直接fwrite()関数を使えばいいです。fwrite()の原型は以下のとおりです。int fwrite(resource handle,string string[,int length])3番目のパラメータはオプションであり、書き込みファイルの最大長さを示しています。ストリップ関数を内蔵して文字列の長さを得ることができます。fwrite($fp,outputtifo,strelen);この関数は、PHPが$Outputtifoの情報を$fpのファイルに保存することを教えています。lファイル1.読み取り専用モードでファイルを開くにはまだfopen()関数が使用されていますが、読み取り専用モードでファイルを開くにはrbファイルモードが使用されます。以下の通りです。fp=fopen(「$root/order.txt」、'rb')2.いつファイルを読み終わるかを知っています。私たちはwhileでループしてファイルの内容を読み取り、feof()関数を使って、循環条件の終了条件とします。while(feof($fp){/処理する情報}3.1行のレコードfgets()関数を読み込むごとにテキストファイルから1行の内容を読み取ることができます。
 
$fp = fopen("$root/order.txt",'rb');
while(!feof($fp)){
$info = fgets($fp,999);
echo $info.'<br />';
}
fclose($fp);
このようにして、改行符()またはファイル終端符EOFを読み出すか、ファイルから998 Bを読み取って、読み取り可能な最大長さは指定された長さから1 Bを減算するまで、データを継続的に読み込みます。4.ファイル全体を読み取るPHPは、4つの異なる方法でファイル全体を読み取ることができます。a)readfile()関数は、先にfopen($path)のファイルとファイルを閉じなくてもいいし、echoを使わずに直接使用すればいいです。readfile(「$root/order.txt」);自動的にファイルの情報をブラウザに出力します。プロトタイプは以下の通りです。Int readfile(string filename)[int use_]include_path[resource context];二つ目のオプションパラメータはPHPがinclude_にあるかどうかを指定しています。パスでファイルを検索します。この点はfopen関数と同じで、戻り値はファイルから読み込むバイトの総数です。注:直接使用するには、fopenまたはfclose bを使わないでください。fpassthru関数はこの関数を使用するには、まずfopen()を開いてください。ファイルのポインタをパラメータとしてfpassthru()に渡すと、ファイルポインタが指すファイルの内容を出力することができます。そしてこのファイルを閉じます。以下の通りです。fp=fopen(「$root/order.txt」、'rb')fpassthru($fp)fclose($fp)戻り値はファイルから読み出すバイトの総数と同じです。注:fopenとfclose cが必要です。file関数はファイルをブラウザに出力する以外に、彼とreadfile関数は同じです。結果を一つの配列に送ります。fileAray=file(「$root/order.txt」);ファイルの各行は、配列の各要素として使用されます。注:直接使用して、fopenとfclose dを使わないでください。file_ゲットするcontensts()はreadfile()と同じ関数ですが、この関数はファイルの内容をブラウザに直接出力するのではなく文字列で返します。つまり、echo file_ゲットするcontensts(「$root/order.txt」);注:直接使用して、fopenとfclose 5を使わずに、一つの文字fgetc()関数を読み取って、一つのファイルから一回に1つの文字を読み取ります。これはファイルポインタ関数を持っています。これも唯一のパラメータです。そして、次の文字を返します。
 
$fp = fopen("$root/order.txt",'rb');
while(!feof($fp)){
$char = fgetc($fp);
if(!feof($fp)){
echo ($char == "
" ? '<br />' : $char);
}
}
fclose($fp);
注:fgetc()関数の欠点の一つはファイルの終端符EOFに戻りますが、fgets()はできません。文字を読み込むとfeof()を判断する必要があります。6.任意の長さfread()関数を読み込むと、ファイルからどの長さのバイトが読み取られますか?関数の原型は以下の通りです。この関数を使うと、lengthパラメータで指定されたバイト数をいっぱい読んだり、ファイルの最後まで読んだりします。
 
$fp = fopen("$root/order.txt",'rb');
echo fread($fp,10); // 10
fclose($fp);
lファイルを閉じてファイルを閉じるのは比較的に簡単で、直接fclose()関数を呼び出してもいいです。もしtrueに戻るなら、成功を表します。逆に。fclose($fp);lファイルunlink()関数を削除します。(deleteという関数はありません。)unlink("$root/order.txt")lファイルサイズを決定するには、filesize()関数を使用して、ファイルのサイズ(バイト単位)を確認できます。以下のように、echo filesize("$root/order.txt")。皆さんも下記の文章を参考にしてください。ファイルの基本読みと書き操作に関する文章です。この文章を見て基本的な操作を習得しました。ここで送って共有します。ファイルを読みます。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. // : homedata.dat
5. &nbsp;
6. $file_pointer = fopen($file_name, "r");
7. // ,8. "r" ,9. ,10.
11. &nbsp;
12. $file_read = fread($file_pointer, filesize($file_name));
13. // 14.
15. &nbsp;
16. fclose($file_pointer);
17. //
18. &nbsp;
19. print " : $file_read";
20. //
21. ?>
22. &nbsp;
ファイルを書きます。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. // : homedata.dat
5. &nbsp;
6. $file_pointer = fopen($file_name, "w");
7. // "w" ,8.
9. &nbsp;
10. fwrite($file_pointer, "what you wanna write");
11. // 12. 0 ,13.
14. &nbsp;
15. fclose($file_pointer);
16. //
17. &nbsp;
18. print " ";
19. &nbsp;
20. ?>
21. &nbsp;
ファイルの後に追加します。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. // : homedata.dat
5. &nbsp;
6. $file_pointer = fopen($file_name, "a");
7. // "w"
8. &nbsp;
9. fwrite($file_pointer, "what you wanna append");
10. // 11. 12. 0 ,13.
14. &nbsp;
15. fclose($file_pointer);
16. //
17. &nbsp;
18. print " ";
19. &nbsp;
20. ?>
21. &nbsp;
以上は簡単な紹介です。これからもっと深いところについて検討します。多くの人が書き込みをする場合があります。(最もよくあるのは流量が多いサイトです。)ファイルに無駄なデータが書き込まれます。例えば、info.fileファイルの内容は以下の通りです。ファイルの破壊を引き起こす->info.file->?1 Mukul 124124124124; 15?Male 124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124; 124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124; 124124124124124124; 124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124; 124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124124Rob記録の'n'は、文件の破壊を引き起こします。もちろんこのような状況が発生することを望まないので、ファイルのロックを見てみましょう。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. &nbsp;
5. $file_pointer = fopen($file_name, "r");
6. &nbsp;
7. $lock = flock($file_pointer, LOCK_SH);
8. // 4.0.2,9. LOCK_SH,10. 1.
11. &nbsp;
12. if ($lock) {
13. &nbsp;
14. $file_read = fread($file_pointer, filesize($file_name));
15. $lock = flock($file_pointer, LOCK_UN);
16. // PHP4.0.2,17. 3 LOCK_UN
18. &nbsp;
19. }
20. &nbsp;
21. fclose($file_pointer);
22. &nbsp;
23. print " $file_read";
24. &nbsp;
25. ?>
26. &nbsp;
上記の例では、両方のファイルread.phpとread.2 phpがこのファイルにアクセスすると、それらは全部読み込むことができますが、プログラムに書き込みが必要な場合は、読み取り操作が完了するまで待つ必要があります。ファイルが解放されます。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. &nbsp;
5. $file_pointer = fopen($file_name, "w");
6. &nbsp;
7. $lock = flock($file_pointer, LOCK_EX);
8. // PHP4.0.2,9. 2 LOCK_EX
10. &nbsp;
11. if ($lock) {
12. &nbsp;
13. fwrite($file_pointer, "what u wanna write");
14. flock($file_pointer, LOCK_UN);
15. // PHP4.0.2,16. 3 LOCK_UN
17. &nbsp;
18. }
19. &nbsp;
20. fclose($file_pointer);
21. &nbsp;
22. print " ";
23. &nbsp;
24. ?>
25. &nbsp;
「w」モードでファイルを上書きしますが、適用されないと思います。PHPコード:
 
1. <?php
2. &nbsp;
3. $file_name = "data.dat";
4. &nbsp;
5. $file_pointer = fopen($file_name, "a");
6. &nbsp;
7. $lock = flock($file_pointer, LOCK_EX);
8. // PHP4.0.2,9. 2 LOCK_EX
10. &nbsp;
11. if ($lock) {
12. &nbsp;
13. fseek($file_pointer, 0, SEEK_END);
14. // PHP4.0RC1,15. fseek($file_pointer, filsize($file_name));
16. &nbsp;
17. fwrite($file_pointer, "what u wanna write");
18. flock($file_pointer, LOCK_UN);
19. // PHP4.0.2,20. 3 LOCK_UN
21. &nbsp;
22. }
23. &nbsp;
24. fclose($file_pointer);
25. &nbsp;
26. print " ";
27. &nbsp;
28. ?>
29. &nbsp;
Hmmm…追加データは他の操作とはちょっと違っています。FEEKです。ファイルポインタがファイルの最後にいつも良い習慣があることを確認します。Windowsシステムでは、上のファイルのファイル名の前に''を追加する必要があります。FLOCK雑談:Flock()はファイルが開いてからロックします。前の列のファイルが開いてからロックを獲得しました。現在のファイルの内容はその時の内容だけで、他のプログラム操作の結果を反映していないので、ファイルの追加操作だけではなく、読み取り操作にもfseekを使うべきです。ここの翻訳は確かではないかもしれませんが、意味は分かりました。モードについて:'r'-読み取り専用で開くと、ファイルのポインタはファイルの先頭'r+'-読み取りと書き込みで開き、ファイルのポインタはファイルのヘッダにセットされます。ファイルの先頭に位置し、ファイルは0バイトにカットされます。ファイルが存在しない場合はファイル'w+'を作成してみます。ファイルの先頭に位置し、ファイルサイズは0バイトにカットされます。ファイルが存在しない場合は、ファイル'a'-書き込みのみで開くことを試み、ファイルの最後にポインタを置いて、ファイルが存在しない場合は、ファイル'a+'-読み書きを確立してみます。ファイルの最後にポインタを置いて、ファイルが存在しない場合は、ファイルを作成してみます。初心者のために役に立つと信じています。ここに貼り付けます。