解決するFatal error:Maximum execution time of 30 seconds exceeded in...の質問

1584 ワード

今日、コンテンツ収集をしたとき、ループが多く、プログラムの実行時間が長すぎたため、「エラーメッセージ:Fatal error:Maximum execution time of 30 seconds exceeded in......」という意味で、スクリプトの実行時間が30秒の上限を超えたということです.このエラーは以前よくあったが、一般的にはページの頭にset_を付ける.time_Limit(0)処理、今日はわざわざこの間違った処理方法をまとめてみました.関連資料を調べたところ、PHP入門教程の学者たちがこの誤りを処理する方法は基本的に3つある.
1. phpのプロファイルphpを変更します.iniファイル
phpが見つかりました.iniこのファイル、そしてこのファイルの中で見つけます:max_execution_time = 30 ;この行では、数字30を希望する値に設定します.単位は秒です.(max_execution_time=0;//無制限に直接変更することもできます)このような変更が完了したら、サーバを再起動する必要があることに注意してください.
2. ini_の使用set()関数
それらについてphpを修正することはできない.iniの友達にとって、iniを使うことができます.set()この関数は、あなたの最大実行時間制限値を変更し、プログラムの上部に次のコードを追加します:ini_set(‘max_execution_time’,’100’);以上の設定は100秒で、0に設定することもできます.それは実行時間を制限しません.
3. set_の使用time_limit()関数
プログラムの上部に追加:set_time_limit(100);最大実行時間が100秒に設定されていることを示します.もちろん、パラメータを0に設定することもできます.つまり、時間を制限しません.set_time_limit関数特別説明:void set_time_limit(int$seconds)この関数の役割は、スクリプトの実行を許可する時間を秒単位で設定することです.この設定を超えると、スクリプトは致命的なエラーを返します.デフォルト値は30秒、またはphpです.iniのmax_execution_timeが定義された値.この値が存在する場合.この関数が呼び出されるとset_time_limit()はゼロからタイムアウトカウンタを再起動します.すなわち、タイムアウトのデフォルトが30秒の場合、スクリプトが25秒実行されたときにset_が呼び出されます.time_Limit(20)では、スクリプトがタイムアウトする前に実行できる総時間は45秒です.phpがセキュリティモードで実行されている場合、この機能は有効になりません.セキュリティモードをオフにする(php.iniでsafe_modeをoffに設定する)か、phpを変更する.iniの中の時間制限は、他に方法がありません.ケース:セキュリティモードがオンになっていない場合は、プログラムの実行時間を25秒に設定します.例:
if(!ini_get('safe_mode')){
    set_time_limit(25);
}