PHP ファイル処理
データ アクセス
サーバー上のデータにアクセスするには、ファイルまたはデータベースの 2 つの主な方法があります
現在、ほとんどのアプリケーションはデータの読み取りと書き込みにデータベースを使用しますが、ファイル アクセスは依然として次のような状況で使用されます:
• エラー ログの記録
• データをファイルにエクスポート
ファイルからデータをインポート
ファイルを書き込む
ファイルを書き込むには、私たちと同じように 3 つの主な手順があります。手動操作の場合、プログラムは次の手順にも従う必要があります:
• fopen を使用する fopen 関数を使用する
out out use off off off off off off off 's ' through 's through 's through through '' ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ )関数は、PHP でファイルを開くために使用されます。
この関数の最初のパラメータには、開くファイルの名前が含まれており、2 番目のパラメータは、ファイルを開くために使用するモードを指定します:
<html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html>
ファイルは次のモードで開くことができます:
注: fopen() 関数が指定されたファイルを開くことができず、0 (false) を返す場合。 例 fopen() 関数が指定されたファイルを開けない場合、次の例はメッセージを生成します:<html> <body> <?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); ?> </body> </html>ファイルを書き込む
fwrite () 関数はファイルを書き込むために使用されます
fwrite には主に 2 つのパラメータがありますhandle は fopen が正常に開かれた後に返されるリソース変数、string は書き込まれるデータです
int fwrite (resource $handle, string $string [, int $length])書き込みが成功すると、fwrite は書き込まれた文字数、または書き込みが失敗した場合は false
例
<?php $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $txt = "Bill Gates\n"; fwrite($myfile, $txt); $txt = "Steve Jobs\n"; fwrite($myfile, $txt); fclose($myfile); ?>
ファイル "newfile.txt" に 2 回書き込んだことに注意してください。ファイルに書き込むたびに、送信する文字列 $txt には、1 回目は「Bill Gates」が含まれ、2 回目は「Steve Jobs」が含まれます。書き込みが完了したら、fclose() 関数を使用してファイルを閉じます。
「newfile.txt」ファイルを開くと、次のようになります:
ビル・ゲイツ
スティーブ・ジョブズ
ファイルの読み取りfreadは、while文を使用せずにファイル全体を読み取るために使用されます。ループの場合、2 番目のパラメータは読み取られる最大バイト数を制御するために使用されることに注意してください。このパラメータは必須です
string fread (resource $handle, int $length)
Executeecho fread($resource, 1024) );
ファイルの内容を最大 1024 バイトまで読み取ることができます
ファイルを閉じますfclose() 関数は、開いているファイルを閉じるために使用されます:
<?php $file = fopen("test.txt","r"); //执行一些代码 fclose($file); ?>ファイルの終わり (EOF) を検出します
feof( ) 関数は、ファイルの終わり (EOF) に到達したかどうかを検出します。
feof() 関数は、長さが不明なデータをループする場合に便利です。
注: w 、 a 、および x モードでは、開いているファイルを読み取ることはできません。
if (feof($file)) echo "ファイルの終わり";
ファイルを一行ずつ読み込む
fgets()関数は、ファイルから一行ずつファイルを読み込むために使用されます。
注: この関数を呼び出した後、ファイル ポインターは次の行に移動します。
例
次の例は、ファイルの終わりまでファイルを 1 行ずつ読み取ります:
<?php $file = fopen("welcome.txt", "r") or exit("无法打开文件!"); // 读取文件每一行,直到文件结尾 while(!feof($file)) { echo fgets($file). "<br>"; } fclose($file); ?>
ファイルを 1 文字ずつ読み取ります
fgetc() 関数は、ファイルから 1 文字ずつファイルを読み取るために使用されます。 。
注: この関数を呼び出した後、ファイル ポインターは次の文字に移動します。
例
次の例では、ファイルの終わりまでファイルを 1 文字ずつ読み取ります。
<?php $file=fopen("welcome.txt","r") or exit("无法打开文件!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?>
file_put_contents
読み取りでも書き込みでも、fopen と fclose は非常に面倒な呼び出しです。PHP5 以降では、これらは非常に面倒な呼び出しです。新しい関数
int file_put_contents ( string $filename ,mixed $data [, int $flags = 0 [, resource $context ]] )
file_put_contents は、 fopen + fwrite + fclose を実行するのと同等です
file_put_contents('file' , "hello worldn");
file_put_contents('file', "hello worldn", FILE_APPEND);
file_get_contents
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource$context [, int $offset = -1 [, int $maxlen ]]]] )
file_get_contents は fopen + fread + fclose を実行するのと同等
echo file_get_contents('file');
その他のファイル操作関数
S file_existsファイルアドレスは、ファイルが存在するかどうかを決定するパラメータとして渡され、true または false
S filesize はパラメータ内のファイルのサイズをバイト単位で返すことができます
S unlink は、渡されるファイル アドレス
PHP ファイルシステム リファレンス マニュアル
PHP ファイルシステム関数の完全なリファレンス マニュアルについては、PHP ファイルシステム リファレンス マニュアルを参照してください。