最近、大量のデータを実行するとタイムアウトを要求する PHP プログラムに遭遇したため、set_time_limit() 関数を使用して PHP ページの最大実行時間を設定しました。
スクリプトの実行を許可する秒数を設定します。これがデフォルトの場合、スクリプトは致命的なエラーを返します。デフォルトの制限は 30 秒です。または、php.ini で max_execution_time を定義することで、PHP ページの最大実行時間を設定できます。
set_time_limit() 関数が呼び出されると、タイムアウト カウンターがゼロから再スタートします。つまり、タイムアウトがデフォルトで 30 秒、スクリプトの実行パラメータまたは set_time_limit までに 25 秒の場合、タイムアウトが (20) に設定されている場合、スクリプトはタイムアウトするまで 45 秒間実行されます。
set_time_limit(900) この関数は現在のphpスクリプトの最大実行時間を指定します。設定値は900秒ですが、実際の最大実行時間はphp.iniのmax_execution_time値-現在のスクリプトの実行時間+設定となります。価値。
php.ini で max_execution_time=30 で、現在のスクリプトが 10 秒間実行された場合:
最大実行時間 = 30-10+900=920 秒。
このような変更後、PHP スクリプトは 200,000 レコードを正常に更新しました。
PHP スクリプトにアクセスするたびに、すべての PHP スクリプトが実行された後にのみ戻り結果が得られます。スクリプトを継続的に実行する必要がある場合は、操作の目的を達成するために PHP の長い接続を使用する必要があります。
各 PHP スクリプトには実行時間が制限されているため、 set_time_limit によってスクリプトの実行時間を無制限に設定し、次に、flush() と ob_flush() を使用してサーバー バッファをクリアし、スクリプトの戻り値を出力する必要があります。いつでも。
<?php header("Content-Type: text/plain"); set_time_limit(0); $infoString = "Hello World" . "\n"; while( isset($infoString) ) { echo $infoString; flush(); ob_flush(); sleep(5); } ?>
上記では、PHP での長い接続の実装をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。