ホームページ  >  記事  >  バックエンド開発  >  php fopen()とfile_get_contents()の違いを詳しく解説

php fopen()とfile_get_contents()の違いを詳しく解説

韦小宝
韦小宝オリジナル
2018-02-27 09:54:192997ブラウズ

PHP 開発では fopen() と file_get_contents() によく遭遇しますが、多くの学生はこれら 2 つの関数が基本的に同じであることに気付くと思います。そこで、今日は php fopen() と file_get_contents() について説明します。違いは、さっそく見てみましょう。

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

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

<?php
$file_name = "1.txt";
echo $file_name . "
";
$fp = fopen($file_name, &#39;r&#39;);
//$buffer=fgets($fp);
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}
fclose($fp);
?>

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

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

<?php
if (file_exists($path)) {
$body = file_get_contents($path);
echo $body; //输入文件内容
} else {
echo "文件不存在 $path";
}
?>

この関数はファイルの内容を一度にすべて読み込んで表示しますが、ファイルが大きすぎるとPHPが多くのメモリを消費します。

もちろん、一般にファイルを配列に読み込む file のようなファイルもあります

以下では、fopen() と file_get_contents() の使用法の違いを紹介します。 URL を開いて Web ページのコンテンツを取得します

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

fopen() は URL を開きます

以下は、fopen() を使用して URL を開く例です:

<?php
$fh = fopen(&#39;http://www.php.cn/&#39;, &#39;r&#39;);
if($fh){
while(!feof($fh)) {
echo fgets($fh);
}
}
?>

この例からわかるように、fopen() が Web ページを開いた後、返される $fh は次のとおりです。

string ではないため、直接出力することはできません。 はい、文字列を取得するには fgets() 関数も使用する必要があります。 fgets() 関数は、ファイル ポインタから行を読み取ります。ファイル ポインタは有効であり、fopen() または fsockopen() によって正常に開かれた (fclose() によって閉じられていない) ファイルを指している必要があります。

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

file_get_contents() は URL を開きます

以下は、file_get_contents() を使用して URL を開く例です:

<?php
$fh= file_get_contents(&#39;http://www.php.cn/&#39;);
echo $fh;
?>

この例から、file_get_contents() が Web ページを開いた後、返される $fh が次であることがわかります。文字列であり、直接出力できます。

上記 2 つの例を比較すると、fopen() よりもシンプルで便利なため、URL を開くために file_get_contents() を使用する方が多くの人に選ばれる可能性があることがわかります。

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

おすすめ関連記事:

この記事では主にPHPのファイル操作関数のオープンとクローズの概要を紹介しています

PHPのfopen()関数とfclose()関数の使い方を解説しています。概要

PHP の fopen 関数と fwrite 関数は HTML ページを作成します。アイデア: fopen 関数と fread 関数を使用してテンプレートを取得します...

PHP fopen 関数と fwrite 関数で HTML ページを作成します

以上がphp fopen()とfile_get_contents()の違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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