推奨マニュアル: php完全独習マニュアル
クローリングプログラムを実行していると、phpが長時間空白になり、次のエラーメッセージが表示されます:
Fatal error: Maximum execution time of 30 seconds exceeded in ......
それは非常に簡単です。スクリプトの実行時間が上限の30秒を超えました。
このエラーは、通常、set_time_limit(0) をページのヘッダーに直接追加することによって、過去に頻繁に発生しました。今日は、このエラーの処理方法を特別にまとめます。
関連情報を参照した後、PHP 入門チュートリアルの学習者がこのエラーに対処する方法は基本的に 3 つあります。
(1) php 設定ファイル php.ini ファイルを変更します (このファイルがデフォルトでインストールされている場合、/etc/ の下にあります)
php.ini ファイルを見つけて、次のファイル内を見つけます:
max_execution_time = 30 ;この行では、数値 30 を秒単位で希望の値に設定します。
(次のように直接変更することもできます: max_execution_time=0; // 制限なし) この変更を行った後はサーバーを再起動する必要があることに注意してください。
たとえば、Apache をお持ちの場合は、service httpd restart を使用します
(2) ini_set() 関数を使用します
php.ini を変更できない友人の場合は、ini_set() 関数を使用して、php.ini を変更できます最大実行時間制限値については、プログラムの先頭に次のコードを追加します。
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 $秒 ) この関数の機能は、スクリプトの実行に許可される時間を秒単位で設定することです。
この設定を超えると、スクリプトは致命的なエラーを返します。
デフォルト値は 30 秒、または php.ini の max_execution_time で定義された値 (この値が存在する場合) です。この関数が呼び出されると、set_time_limit() はタイムアウト カウンタを 0 から再スタートします。
言い換えると、デフォルトのタイムアウトが 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); }
おすすめ関連記事:
1.PHPをタイムアウトにする方法は何ですか
2.PHPリクエストインターフェイスのタイムアウトを解決する方法
関連ビデオの推奨:
1 Dugu Jiijian (4)_PHP ビデオチュートリアル
関連する推奨事項:
外部プログラムを実行する PHP 実装方法
外部プログラムを実行するPHPの実装コードを詳しく解説
PHP の実行効率を向上させる 50 のヒント
以上がPHPの実行が30秒間タイムアウトする場合のエラーの解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。