PHP ファイル処理 - ファイルの読み取り方法 (1 行、ファイル全体)
ファイルの開閉に比べ、ファイルの読み取りと書き込みはより複雑です。ここでは主にデータの読み込みと書き込みの2つの側面から説明します。
前回の記事「PHP ファイルの処理 - ファイルの開閉」では、ファイルを開くことと閉じることがすべてのファイル操作の前提条件であり、閉じることですべてのファイル操作が終了することを紹介しました。ファイルの読み込み方法を紹介します!
ファイルからデータを読み取る
ファイルからデータを読み取ることができます。文字、文字列、またはファイル全体を読み取ることもできます。
1. ファイル全体を読み取ります: readfile()、flie()、file_get_contents() の 3 つの関数を以下で 1 つずつ紹介します。
readfile() 関数
readfile() 関数は、ファイルを読み取って出力バッファに書き込むために使用され、エラーが発生した場合は false を返します。 関数の構文形式は次のとおりです。
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
readfile() 関数を使用すると、ファイルを開いたり閉じたりする必要がなく、最初にファイル パスを記述するだけで、echo、print、その他の出力ステートメントも必要ありません。
flie() 関数
flie() 関数は、ファイル全体の内容を読み取ることもできますが、file() 関数は、改行を含むファイルの内容を 1 行ずつ配列に格納し、読み取りが失敗した場合に戻ります。間違い。関数の構文形式は次のとおりです。
array file ( string $filename [, int $flags = 0 [, resource $context ]] )
file_get_contents() 関数
file_get_contents() 関数は、ファイル (fliename) の内容を文字列に読み取ります。 offset パラメータと maxlen パラメータがない場合は、offset パラメータで指定された位置から長さ maxlen の文字列が読み取られます。読み取りに失敗した場合は false が返されます。関数の構文形式は次のとおりです。
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
この関数はバイナリ ファイルに適しており、ファイル全体の内容を文字列に読み取る場合に推奨される方法です。
次の例では、上記の 3 つの関数を使用してファイルの内容を読み取ります。具体的なコードは次のとおりです。
2. データ行を読み取ります。と fgetss() 関数
(1) fgets() 関数
fgets() 関数は、一度に 1 行のデータを読み取るために使用されます。関数の構文形式は次のとおりです。
<html> <body> <table width="500" border="1" cellpadding="0" cellspacing="0" > <tr> <td width="253" height="100" align="right" valign="middle" scope="col">使用 readfile()函数读取文件内容:</td> <td width="241" height="100" valign="middle" scope="col"> <!--使用 readfile()函数读取tm.txt文件内容--> <?php readfile("tm.txt");?></td> </tr> <tr> <td height="100" align="right" valign="middle">使用 file()函数读取文件内容:</td> <td height="100" valign="middle" > <!--使用 file()函数读取tm.txt文件内容--> <?php $f_arr = file("tm.txt"); foreach ($f_arr as $cont){ echo $cont."<br>"; } ?> </td> </tr> <tr> <td width="250" height="25" align="right" valign="middle" scope="col">使用flie_get_contents()函数读取文件内容:</td> <td height="25" valign="middle" align="center" scope="col" > <!--使用 flie_get_contents()函数读取tm.txt文件内容--> <?php $f_chr = file_get_contents("tm.txt"); echo $f_chr; ?> </td> </tr> </table> </body> </html>
パラメーター ハンドルは読み取るファイル、パラメーターの長さは読み取るデータの長さです。この関数は、handle で指定されたファイルから 1 行を読み取り、最大長が length-1 バイトの文字列を返すことができます。改行文字、EOF、または length-1 回の読み取り後に停止します。 length-1 パラメータを省略した場合、データは行の終わりまで読み取られます。
(2)fgetss() 関数fgetss() 関数は fgets() 関数のバリアントで、データ行を読み取るために使用されます。同時に、 fgetss() 関数は、読み取られるコンテンツ内の HTML タグと PHP タグをフィルターで除外します。関数の構文は次のとおりです。
string fgets ( resource $handle [, int $length ] )
この関数は、読み取りファイルから任意の HTML タグと PHP タグを除外できます。allowable_tags パラメーターを使用して、どのタグが除外されないかを制御できます。
次の例では、上記の関数を使用してそれぞれファイルを読み取り、表示します。それらの違いを観察してください。具体的なコードは次のとおりです:
string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )
出力結果は次のとおりです:
この記事では、ファイル全体を読み取る方法と、ファイル内のデータを 1 行読み取る方法の 2 つの方法を紹介します。次の記事では文字と指定長の文字列の読み込みを紹介します。詳しくは『
PHPファイル処理 - ファイル(1文字、文字列)の読み込み以上がPHP ファイルの処理 - ファイルの読み取り方法 (1 行、ファイル全体)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。