私はPHPを使い始めたばかりですが、よくわかりません。file()
、file_get_contents()
、およびfopen()
関数の違いと、いつ使用するかどっち?
最初の2つ、 file
および file_get_contents
は非常に似ています。どちらもファイル全体を読み取りますが、file
はファイルを配列に読み取りますが、file_get_contents
はそれを文字列に読み込みます。 file
によって返される配列は改行で区切られますが、各要素には終端の改行が付加されているため、引き続き注意する必要があります。
fopen
関数は、まったく異なる処理を実行します。これは、読み取るストリームとして機能するファイル記述子を開きますまたはファイルに書き込みます。これは、はるかに低レベルの関数であり、C fopen
関数の単純なラッパーであり、単にfopen
を呼び出すだけでは、ストリームを開く以外に何も実行されません。
ファイルのハンドルを開いたら、 fread
や fwrite
などの他の関数を使用して、ハンドルのデータを操作できます。を参照し、完了したら、 fclose
を使用してストリームを閉じる必要があります。これらにより、読み取るファイルをより細かく制御できます。未加工のバイナリデータが必要な場合は、それらを使用する必要がありますが、通常はより高レベルの関数を使用できます。
要約すると、
file
—ファイルの内容全体を行の配列に読み取ります。file_get_contents
—ファイルの内容全体を文字列に読み取ります。fopen
—他のライブラリ関数で操作できるファイルハンドルを開きますが、それ自体の読み取りや書き込みは行いません。file
—ファイル全体を配列に読み込みますfile_get_contents
—ファイル全体を文字列に読み取りますfopen
—ファイルまたはURLを開きます