スクリプトが 30 秒でタイムアウトされないようにする - PHP5 プログラミング

PROGRAM


PHP スクリプトが 30 秒でタイムアウトされないようにする

PHP5 ではディフォルトで、30 秒以上継続して実行されるスクリプトは強制中断されるようになっていました。

少し長い時間が必要なスクリプトを実行したい場合には、それがタイムアウトされてしまわないように、PHP スクリプト内で次のようにして実行可能時間を延長することが可能です。

set_time_limit($seconds);

このように $seconds としてタイムアウトまでの実行時間を秒単位で指定してあげることで、この set_time_limit 関数を実行した時点から、指定した秒数だけ、タイムアウトまでの時間を延長することができるようになっています。

ここで $seconds に 0 を設定すると、タイムアウトされないようになります。

 

留意事項としては、php.ini の中で "max_execution_time" が設定されている場合には、そちらが優先されるらしいです。

ただ、Windows 版の PHP 5.3.5 で試してみたのですけど、その php.ini で "max_execution_time" を設定しても、それが優先される気配はありませんでした。php.ini でだけ設定すればそれが有効になるのですけど、"set_time_limit" 関数を使用すると、php.ini で設定した秒数以上でもそれ以下でも、"set_time_limit" で指定した時間が有効になるような感じでした。


[ もどる ]