PHP の file_get_content はメモリに読み込まれたファイルの内容を破壊しませんか?解決方法

WBOY
リリース: 2016-06-13 13:28:10
オリジナル
1742 人が閲覧しました

PHP の file_get_content はメモリに読み込まれたファイルの内容を破壊しませんか?
少し前に自分用に書いた小さなプログラム: 指定されたフォルダー内のファイルを走査し、指定されたコンテンツを検索します

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->// 这种用法很占用内存,几乎每次都出错
$content = file_get_contents($file);

// 成功
$content = '';
$fp = fopen($file, 'r');
$content .= fread($fp, 10240);
// 即使没有fclose(),在函数内调用仍然会顺利运行完毕
ログイン後にコピー

おそらく file_get_contents( ) は、通話終了後に読み取られたファイルの内容メモリを破壊しません。しかし、なぜ? PHP 開発者が私より愚かだとは思いませんが、これは愚かな設計のように思えます

-----解決策------------- - ------
file_get_contents()


fopren()
fread(filesize())
fclose()

と同等です。つまり、次の時点でファイルをメモリに読み取ります。巨大なファイルに遭遇した場合、メモリが不足します
そして $content .= fread($fp, 10240);
毎回 10k しか読み込まない場合、もちろんそれは簡単ではありません問題を引き起こす
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!