PHP開発では、ローカルテキストファイルやリモートリソースの読み取りであろうと、ファイルコンテンツの読み取りは非常に一般的な操作です。 PHPはさまざまな読み取り方法を提供します。その中で最も一般的に使用されるのは、 file_get_contentsとfreadです。この記事では、これら2つの方法を詳細に紹介し、ファイルの読解力をすばやく習得するのに役立つ実用的なコード例を提供します。
file_get_contentsは、ファイルコンテンツ全体を読み取るのに適したシンプルで直接ファイル読み取り機能です。ファイルのすべてのコンテンツを一度にメモリにロードし、文字列として返します。
$file_contents = file_get_contents('file.txt');
echo $file_contents;
上記のコードでは、 file_get_contentsはfile.txtという名前のファイルを読み取り、その内容を出力します。
ローカルファイルに加えて、 file_get_contentsを使用してリモートファイルを読み取ることもできます。リモートファイルのURLを渡すだけです。
$file_contents = file_get_contents('http://www.example.com/file.txt');
echo $file_contents;
この例では、リモートサーバーでホストされているテキストファイルが読み取られ、その内容が出力されます。
file_get_contentsを使用して、写真などのバイナリファイルコンテンツを読み取ることもできます。適切なパラメーターを設定するだけです。
$file_contents = file_get_contents('image.png', true);
echo $file_contents;
2番目のパラメーターを設定することにより、バイナリストリームの読み取りなど、特定のモードでファイルを読み取るように関数を指定できます。
File_Get_Contentsと比較して、 FREADは、特にセグメント化された読み取りが必要な大きなファイルや状況を処理するのに適した柔軟性を高めます。これは、ストリームベースの読み方です。
$file_handle = fopen('file.txt', 'r');
$file_size = filesize('file.txt');
$file_contents = fread($file_handle, $file_size);
fclose($file_handle);
echo $file_contents;
この例では、 FOPENを使用してファイルを開き、ファイルサイズにファイルサイズを取得し、 FREADがコンテンツを読み取り、最後にファイルハンドルを閉じます。
ファイルコンテンツを行ごとに処理する必要がある場合、 FGETSは理想的であり、 FREADと組み合わせて行の読み取りロジックを実装できます。
$file_handle = fopen('file.txt', 'r');
while (!feof($file_handle)) {
$line = fgets($file_handle);
echo $line;
}
fclose($file_handle);
上記のコードは、ログファイルまたは大きなテキストのラインレベルの処理に適したループを介して、ファイルのコンテンツラインを線で読み取ります。
PHPはファイルを読み取るためのさまざまな方法を提供します。ここでは、 FILE_GET_CONTENTSが完全なファイルコンテンツをすばやく読み取るのに適していますが、 FREADは大きなファイルを処理したり、オンデマンドの読み取りを必要とするときにパフォーマンスが向上します。開発者は、プログラムのパフォーマンスと保守性を向上させるために、さまざまなシナリオに従って適切な読解方法を柔軟に選択する必要があります。