HTML ファイルを生成するとき、データ量が多かったので、ファイルが生成される前に何度も fopen fwrite fclose を実行すると、メモリを超過したというメッセージが表示されました。
私の HTML 生成方法は、キャッシュに読み取ってからファイルに書き込むことです
ob_start (); $temp = ob_get_contents (); ob_end_clean ();
unset(temp) が機能しません この問題を解決するにはどうすればよいですか?これらの CMS がどのように HTML を生成するのかわかりません。データがどんなに大きくても、メモリを超えることはありません。言ってください
私の HTML 生成方法は、キャッシュに読み込んでからファイルに書き込むことです
ob_start (); $temp = ob_get_contents (); ob_end_clean ();
unset(temp) も機能しません この問題を解決するにはどうすればよいですか?これらの CMS がどのようにして HTML を生成するのかはわかりません。たとえば、スクリプトを無限ループにする必要がある場合、一定の回数ループするとメモリが制限を超えることはありません。各ループを 100 回制御する方法は?週末休み
HTMLを生成中 ファイル作成時、データ量が多いため、fopen fwrite fcloseを何度も繰り返してもファイルが生成されずにメモリを超えてしまいます。
私の HTML 生成方法は、キャッシュに読み込んでからファイルに書き込むことですob_start(); $temp = ob_get_contents (); ob_end_clean ();
unset(temp) も機能しません この問題を解決するにはどうすればよいですか?これらの CMS がどのようにして HTML を生成するのかはわかりません。たとえば、スクリプトを無限ループにする必要がある場合、一定の回数ループするとメモリが制限を超えることはありません。各ループを 100 回制御するにはどうすればよいですか? メモリを解放するというアイデアは、ページング読み取りを使用して大きなタスクをバッチで実行することです。
追加: register_shutdown_function
各ページが書き込まれた後、ヘッダーの場所は自動的に次のページに移動します。
register_shutdown_function を使用すると、初めてブラウザを開いたときにすぐにブラウザを閉じることができ、自動的に実行されます。
この場合、前のコード
$p = $_GET['p'] * 100; for($i=$p; $i<$p+100; $i++){ e cho $i; echo '<br>'; // ..... // 执行其他操作 }sleep(1); ?> <script> var p = GetQueryString('p'); p++;var url = window.location.href; var new_url = url.replace(/\?p=(\d)+/, '') + '?p=' + p; window.location.href = new_url; function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null;} </script>