ホームページ >バックエンド開発 >PHPチュートリアル >php fopen() と file_get_contents() の違いの概要

php fopen() と file_get_contents() の違いの概要

WBOY
WBOYオリジナル
2016-06-13 12:29:05878ブラウズ

php fopen() と file_get_contents() の違いの概要

この記事では、プログラマに fopen と file_get_contents を使用して PHP でファイルを読み取る方法と、これら 2 つの関数の違いを紹介します。必要なプログラマーは参照してください。 。

PHP でファイルを読み取るには、fopen と file_get_contents の 2 つの関数を使用できます。前者でファイルを読み取るための PHP コードが後者よりも少し複雑であることを除けば、この 2 つに本質的な違いはありません。この記事では、ファイルを読み込むための fopen と file_get_contents の実装コードをサンプルを通して説明します。必要なプログラマはそれを参照できます。

fopen がファイルを読み取るコードは次のとおりです。

<?<span style="color: #000000;">php</span><span style="color: #800080;">$file_name</span> = "1.txt"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$file_name</span> . ""<span style="color: #000000;">;</span><span style="color: #800080;">$fp</span> = <span style="color: #008080;">fopen</span>(<span style="color: #800080;">$file_name</span>, 'r'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">$buffer=fgets($fp);</span><span style="color: #0000ff;">while</span> (!<span style="color: #008080;">feof</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">)) {</span><span style="color: #800080;">$buffer</span> = <span style="color: #008080;">fgets</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$buffer</span><span style="color: #000000;">;}</span><span style="color: #008080;">fclose</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">);</span>?>

fopen がファイルを読み取るには、fgets 関数と fclose 関数を使用する必要があることに注意してください。

ファイルを読み取るための file_get_contents のコードは次のとおりです。

<?<span style="color: #000000;">php</span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$path</span><span style="color: #000000;">)) {</span><span style="color: #800080;">$body</span> = <span style="color: #008080;">file_get_contents</span>(<span style="color: #800080;">$path</span><span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$body</span>; <span style="color: #008000;">//</span><span style="color: #008000;">输入文件内容</span>} <span style="color: #0000ff;">else</span><span style="color: #000000;"> {</span><span style="color: #0000ff;">echo</span> "文件不存在 <span style="color: #800080;">$path</span>"<span style="color: #000000;">;}</span>?>

この関数は、すべてのファイルの内容を一度に読み取り、表示します。ただし、ファイルが大きすぎると、PHP が大量のメモリを占有します。

もちろん、一般にファイルを配列に読み取る file のようなファイルもあります。同時に、ファイルを読み取ることもできます。

させてください。 URL を開いて Web ページのコンテンツを取得するための fopen() と file_get_contents() の使用法の違いを以下で紹介します。

PHP で Web ページの URL を開いて Web ページのコンテンツを取得する場合。 、より一般的に使用される関数は fopen() と file_get_contents() です。要件が厳しくなければ、これら 2 つの機能は個人の好みに応じて任意に選択できることがほとんどです。この記事では、これら 2 つの機能の使用方法の違いと、その際に注意する必要がある問題について説明します。それらを使って。

fopen() は URL を開きます

次は、fopen() を使用して URL を開く例です。

<?<span style="color: #000000;">php</span><span style="color: #800080;">$fh</span> = <span style="color: #008080;">fopen</span>('http://www.baidu.com/', 'r'<span style="color: #000000;">);</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">){</span><span style="color: #0000ff;">while</span>(!<span style="color: #008080;">feof</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">)) {</span><span style="color: #0000ff;">echo</span> <span style="color: #008080;">fgets</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">);}}</span>?>

この例からわかるように、fopen() が Web ページを開いた後、返される $fh は文字列ではないため、文字列を取得するために fgets() 関数を使用する必要もあります。 fgets() 関数は、ファイル ポインタから行を読み取ります。ファイル ポインタは有効であり、fopen() または fsockopen() によって正常に開かれた (fclose() によって閉じられていない) ファイルを指している必要があります。

fopen() は、オープンに失敗した場合にリソースのみを返すことがわかります。

file_get_contents() は URL を開きます

次に、file_get_contents() を使用して URL を開く例を示します。

<?<span style="color: #000000;">php</span><span style="color: #800080;">$fh</span>= <span style="color: #008080;">file_get_contents</span>('http://www.baidu.com/'<span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$fh</span><span style="color: #000000;">;</span>?>

この例からわかるように、 file_get_contents () Web ページを開いた後、返される $fh は直接出力できる文字列です。

上記の 2 つの例を比較すると、file_get_contents() を使用して URL を開く方が、fopen() よりも簡単で便利であるため、より多くの人が選択する可能性があることがわかります。

ただし、比較的大きなリソースを読み取る場合は、fopen() を使用する方が適切です。

元のアドレス: http://www.manongjc.com/article/618.html

関連書籍:

php file_get_contents read Large File

php file_get_contents のタイムアウト処理方法

php file_get_contents("php://input", "r") 例の説明

php file_get_contents リモートページ取得時のコード化けの解決方法メソッド

php file_get_contents ファイルのタイムアウト処理メソッド

php fgets file_get_contents read file

php use fopen と file_get_contents to read file example

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。