1. ファイルを開く/閉じる
ファイルを開く/閉じるには、それぞれ fopen() 関数と fclose() 関数を使用します。ファイルの内容をすべて誤って削除してしまう可能性があるため、ファイルを開くときは特に注意する必要があります。
(1) ファイルを開きます
fopen() 関数、構文形式は次のとおりです:
resource fopen(string filename,string mode [,bool use_include_path]);
パラメータ filename は、開くパスを含むファイル名です。 、相対パスまたは絶対パスを指定できます。パラメーター mode は、次の表に示すように、開くモードです。
(2) ファイルを閉じる
ファイルに対する操作が完了したら、ファイルを閉じる必要があります。そうしないと、エラーが発生する可能性があります。 PHP で fclose() 関数を使用してファイルを閉じます。構文は次のとおりです:
bool fclose(resource handle); この関数は、成功した場合は true を返し、それ以外の場合は true を返します。 falseを返します。ファイル ポインタは有効であり、fopen() 関数を通じて正常に開かれたファイルである必要があります。
コード例は次のとおりです:
<?php$_open =fopen("../fiel.txt","rb"); //打开文件... //对文件的操作fclose($_open); //关闭文件?>
2、ファイルの読み取りと書き込み ファイルからデータを読み取り、文字、文字列の行、またはファイル全体を読み取ることができます。任意の長さの文字列にすることもできます。
(1) ファイル全体を読み取ります: readfile()、file()、および file_get_contents() 関数。
a, readfile() 関数
readfile() 関数は、ファイルを読み取り、それを出力バッファに書き込むために使用され、エラーが発生した場合は false を返します。関数の構文は次のとおりです:
int readfile(string filename);
注:
readfile(0 関数を使用する場合は、ファイルを開く/閉じる必要はありません。ファイルのパスを入力するだけです。 echo/print 出力ステートメント。
file() 関数はファイル全体のデータを読み取ることもできますが、file() 関数は改行を含むファイルの内容を配列に保存します。失敗すると false が返されます。
array file(string filename);
この関数は、offset パラメータと maxlen パラメータがある場合、maxlen の長さが文字列に読み込まれます。 offset パラメータで指定された位置から読み取られます。読み取りに失敗した場合、構文は次のとおりです。
file_get_contents(string filename[,int offset[,int maxlen]]);関数は、ファイル全体の内容を読み取るのに適しています。
サンプル コードは次のとおりです。
<table width ="500" border ="1" cellspacing ="0" cellpadding ="0"><tr> <td width ="253" height ="100" align ="right" valign ="middle" scope ="col">使用readfile()函数读取文件内容: </td> <td width ="241" height ="100" align ="center" valign ="middle" scope ="col"> <?php readfile("tm.txt"); echo "\n"; ?> </td></tr><tr> <td height ="100" align ="right" valign ="middle">使用file()函数读取文件的内容:</td> <td height ="100" align ="center" valign ="middle"> <?php $f_arr =file("tm.txt"); foreach($f_arr as $count){ echo $count."\n"; } ?> </td></tr><tr> <td width ="250" height ="100" align ="right" valign ="middle" scope ="col">使用file_get_contents()函数读取文件内容:</td> <td height ="25" align ="center" valign ="middle" scope ="col"> <?php $f_chr =file_get_contents('tm.txt'); echo $f_chr."\n"; ?> </td></tr></table>
実行結果は次のとおりです。
(2) データの行を読み取ります。 : fgets() および fgetss()
string fgets(int handle[,int length]);
パラメータhandle は開かれるファイルであり、パラメータ length は読み取られるデータの長さです。関数は、長さ 1 バイトの文字列を読み取ることができます。改行文字、EOF、またはを検出すると停止します。 length-1 バイトを読み取ります。 length パラメーターが省略された場合、
fgetss() 関数は、データの行を読み取るために使用される fgets() 関数の一種です。同時に、fgets() 関数はフィルター処理を行います。読み取ったコンテンツ内の html タグと php タグを除外します。
string fgetss(resource handle[,int length[ ,string allowed_tags]])
この関数は、ファイルから html タグと php タグを除外できます。 allowable_tags パラメーターを使用して、どのタグを除外しないかを制御できます。
以下は fgets() 関数と fgetss() 関数を使用した関数です。
<table border ="1"><tr><td align ="right" valign ="middle" scope ="col">使用fgets()函数:</td><td align ="center" valign ="middle" scope ="col"><?php $open =fopen('jacktest.php', 'rb'); while (!feof($open)){ echo fgets($open); } fclose($open); ?></td></tr><tr><td align ="right" valign ="middle" scope ="col">使用fgetss()函数:</td><td align ="center" valign ="middle" scope ="col"><?php $handle =fopen('jacktest.php', 'rb'); while (!feof($handle)){ echo fgetss($handle); } fclose($handle); ?></td></tr></table>
(3) fgetc() は文字を読み込みます
ある文字を検索・置換する場合、ある文字を対象的に読み取る必要があります。構文形式は次のとおりです:
string fgetc(リソース ハンドル)
サンプル コードは次のとおりです:
<?php $handle =fopen('123.txt', 'rb'); while (false !=($chr =fgetc($handle))){ echo $chr."<br>"; } fclose($handle); ?>
実行結果は次のとおりです:
(4 ) fread() は任意の長さの文字列を読み取ります
string fread(resource[,int length])
サンプル コードは次のとおりです:
<?php $handle =fopen('123.txt', 'rb'); echo fread($handle, 40)."<br>"; //读取四十个字节的字符串。 fclose($handle); ?>
実行結果は以下の通りです:
(5) php でファイル
fwrite() の構文は次のとおりです:
int fwrite(resource handle, string string[,int length])
この関数は、文字列をハンドルに書き込みます。長さ length が指定されている場合、length バイトを書き込んだ後で停止します。 。そうでない場合は、文字列の内容をすべて書き込みます。
file_put_contents() 関数は php5 の新しい関数です。構文は次のとおりです。
int file_put_contents(string filename,string data[,int flags])
filename ビットは、データが書き込まれるファイルのパス名です。
data は書き込まれるデータです
flags は FILE_INCLUDE_PATH、FILE_APPEND または LOCK_X、LOCK_EX は排他ロックです。
以下で比較してください。関数 fopen()、fwrite()、fclose() および file_put_contents() の使用の違い。
サンプルコードは以下の通りです:
<?php $filepath ="1.txt"; $str ="今天是个好天气,心情也好"; echo "用fwrite()函数写入文件:<br>"; $fopen =fopen($filepath, "wb") or die("文件不存在"); fwrite($fopen, $str); fclose($fopen); readfile($filepath); echo "用file_put_contents()函数来写入文件:<br>"; $str1 ="这是用file_put_contents()函数来写入文件1111"; file_put_contents($filepath, $str1); readfile($filepath); ?>
よく使われるファイル操作関数は以下の通りです: