ホームページ >バックエンド開発 >PHPチュートリアル >大量のデータをループするとメモリが超過します。メモリを増やさずにこの問題を解決するにはどうすればよいでしょうか。

大量のデータをループするとメモリが超過します。メモリを増やさずにこの問題を解決するにはどうすればよいでしょうか。

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

大量のデータをループするとメモリが超過します。メモリを増やさずにこの問題を解決するにはどうすればよいですか?
HTML ファイルを生成するときに、データ量が多いため、fopen fwrite fclose を何度も繰り返しました。ファイルが生成されると、メモリを超過したというメッセージが表示されました。
私の HTML 生成方法は、キャッシュに読み込んでからファイルに書き込むことです。

<br />ob_start ();<br />		$temp = ob_get_contents ();<br />		ob_end_clean ();<br />

この問題を解決するにはどうすればよいですか?これらの CMS がどのように HTML を生成するのかはわかりません。データがどんなに大きくても、メモリを超えることはありません
-----解決策のアイデア----------- ------ -----
この状況はバッチで実行する必要があります。上記のコードを使用すると、原理がすぐに理解できます。
$total = 10;<br />$s = 0;<br />if (isset ( $_GET ['s'] )) {<br />        $s = &$_GET ['s'];<br />}<br />$per = $s + 5; // 每次循环5条<br />if ($per > $total) { // 如果下次循环会超过总数,就让他只能循环到总数<br />        $per = &$total;<br />}<br />while ( $s < $per ) {<br />        echo ++ $s;<br />        echo '<br>';<br />}<br />echo '<hr>';<br />echo $s;<br />if ($s < $total) {<br />        echo "<script>window.location.href='?s=$s'</script>";<br />}

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