PHP にはデフォルトで 30 秒の実行上限があります。プログラムの実行が 30 秒を超えると、「Fatal error: Maximum execution time of 30 seconds exceeded」というエラーメッセージが表示されます。これは、無限ループなどのおかしなコードがあった場合に、システム全体が止まってしまうのを防ぐための仕組みです。ただ、プログラムによっては 30 秒を超えて実行する必要がある場合もあります。たとえば、PHP で非常に大きなファイルを処理する場合です。データベースのバックアップファイルは数百 MB になることもあり、処理に時間がかかって 30 秒を超えてしまうことがあります。以前作った Plurk BOT やクローラーのプログラムも、簡単に 30 秒を超えていました。ここでは、この時間の上限を調整する二つの方法を紹介します。
方法一:php.ini を変更する
php.ini を変更すると、実行時間の上限を引き上げられます。この方法の特徴は「グローバル」な変更であることです。一度設定を変更すると、今後の「すべての PHP スクリプト」がこの時間の上限を使うようになります。これには良い面も悪い面もあります。良い面は便利なことです。悪い面は、コードに誤りがあっても気づきにくく、システムが止まってしまう可能性があることです。php.ini(/etc/php.ini)を開き、「max_execution_time」を検索します。
デフォルトは 30 です。30 を希望する時間の上限(秒単位)に変更してください。
方法二:set_time_limit
共有ホスティングを使っていて php.ini を編集できない場合や、すべてのプログラムに上限がないのが嫌な場合があります。そのようなときは set_time_limit 関数を使えます。コードに直接書き込むことができ、実行時間の上限を「ソフトに」設定できます。また、この変更はグローバルではありません。なお、set_time_limit は PHP のセーフモード(Safe mode)では効果がありません。
set_time_limit(制限時間)制限時間の単位は秒です。上限を設けないようにするには 0 を指定します。
set_time_limit(0)上のように書くと上限がなくなります。
この関数は、コードの一番上に書くことをおすすめします。
set_time_limit の公式ドキュメント:http://php.net/manual/en/function.set-time-limit.php

