PHP で最大実行時間を設定する

Subodh Poudel 2023年6月20日
  1. ini_set() 関数を使用して、PHP でスクリプトの最大実行時間を設定する
  2. set_time_limit() 関数を使用して PHP でスクリプトの最大実行時間を設定する
  3. php.inimax_execution_time オプションを変更して、PHP でスクリプトの最大実行時間を設定する
PHP で最大実行時間を設定する

PHP では、一定期間後の実行タイムアウトは通常 30 秒です。 そのため、巨大なファイルを処理するのは面倒です。

ただし、スクリプトの最大実行時間は自分で設定できます。 この記事では、大きなファイルを簡単に処理できるように、PHP でスクリプトの最大実行時間を設定する 3つの方法を紹介します。

ini_set() 関数を使用して、PHP でスクリプトの最大実行時間を設定する

ini_set() 関数を使用して、PHP スクリプトの実行時間を設定できます。 この関数は、PHP 構成の値を設定するために使用されます。

最初のパラメーターは構成名を取り、2 番目のパラメーターは構成の値です。 構成名は文字列である必要があります。

PHP には、スクリプトの最大実行時間を定義する構成 max_execution_time があります。 ini_set() 関数の構成オプションを使用して、目的の実行時間を設定できます。

たとえば、PHP スクリプトの先頭に ini_set() 関数を記述します。 'max_execution_time' を最初のパラメーターとして、'240' を 2 番目のパラメーターとして記述します。

したがって、実行時間は 4 分に相当する 240 秒に設定されています。 2 番目のパラメーターを '0' に設定して、実行時間を無限に設定することもできます。

したがって、ini_set() 関数を使用して、現在の PHP スクリプトの実行時間を設定できます。

コード例:

ini_set('max_execution_time', '240');

set_time_limit() 関数を使用して PHP でスクリプトの最大実行時間を設定する

set_time_limit() 関数を使用して PHP スクリプトの実行時間を設定することもできます。

この関数は、スクリプトの最大実行時間を設定します。 秒単位の整数パラメータを取ります。

たとえば、関数 set_time_limit() と整数 240 をそのパラメーターとして記述します。 その結果、現在の PHP スクリプトの最大実行時間は 4 分に設定されています。

ただし、この関数を使用するには、php.inisafe_mode 構成オプション off を有効にする必要があります。 これは、set_time_limit() がサーバーのセキュリティを侵害する可能性があるためです。

たとえば、set_time_limit(0) を設定すると、最大実行時間に制限がないため、無限ループがスクリプト内で永久に実行される可能性があります。 safe_mode をオフにするには、php.ini ファイルに safe_mode = Off という行を追加します。

set_time_limit() 関数を使用して、PHP でスクリプトの最大実行時間を設定できます。

コード例:

set_time_limit(240);

php.inimax_execution_time オプションを変更して、PHP でスクリプトの最大実行時間を設定する

上記で説明した方法は、スクリプトの最大実行時間を一時的に設定します。 つまり、スクリプトが終了すると、構成も終了します。

ただし、すべての PHP スクリプトの最大実行時間を永続的に設定する方法があります。 php.ini ファイルで、構成オプション max_execution_time を目的の値に変更する必要があります。

phpinfo() 関数の出力をナビゲートすることで、php.ini ファイルを見つけることができます。

以下の例では、最大実行時間を 240 に設定します。これは 4 分に相当します。

コード例:

max_execution_time = 240
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn