PHP における file、file_get_contents、fopen の違い 質問する

PHP における file、file_get_contents、fopen の違い 質問する

私は PHP 初心者で、 、 、 関数の違いが何なのか、また、どの関数をどのタイミングで使用すればよいのかがよくわかりfile()ませfile_get_contents()fopen()

ベストアンサー1

最初の二つ、fileそしてfile_get_contentsは非常によく似ています。どちらもファイル全体を読み取りますが、 はfileファイルを配列に読み込み、 はfile_get_contents文字列に読み込みます。 によって返される配列はfile改行で区切られますが、各要素には終了改行が付加されたままなので、その点には注意する必要があります。

fopen関数は全く異なる動作をします。ファイル記述子を開き、それをストリームとして読み取る機能です。またはファイルに書き込みます。これは非常に低レベルの関数であり、Cfopen関数の単純なラッパーであり、単に呼び出すだけでfopenはストリームを開く以外何も行われません。

ファイルへのハンドルを開いたら、次のような他の関数を使用できます。freadそしてfwriteハンドルが参照するデータを操作し、終わったら、次のコードを使用してストリームを閉じる必要があります。fcloseこれらを使用すると、読み取るファイルをより細かく制御できます。生のバイナリ データが必要な場合は、これらを使用する必要があるかもしれませんが、通常は、より高レベルの関数を使用できます。

まとめると次のようになります。

  • file— ファイルの内容全体を行の配列に読み込みます。
  • file_get_contents— ファイルの内容全体を文字列に読み込みます。
  • fopen— 他のライブラリ関数で操作できるファイル ハンドルを開きますが、それ自体は読み取りや書き込みは行いません。

おすすめ記事