php.ini の設定により動作が変化します。
| 名前 | デフォルト | 変更可能 | 変更履歴 |
|---|---|---|---|
| assert.active | "1" | PHP_INI_ALL | |
| assert.bail | "0" | PHP_INI_ALL | |
| assert.warning | "1" | PHP_INI_ALL | |
| assert.callback | NULL | PHP_INI_ALL | |
| assert.quiet_eval | "0" | PHP_INI_ALL | |
| enable_dl | "1" | PHP_INI_SYSTEM | この非推奨の機能は、きっと 将来 削除 されるでしょう。 |
| max_execution_time | "30" | PHP_INI_ALL | |
| max_input_time | "-1" | PHP_INI_PERDIR | PHP 4.3.0 以降で有効 |
| max_input_nesting_level | "64" | PHP_INI_PERDIR | 4.4.8 以降および PHP 5.2.3 以降で有効。 |
| max_input_vars | 1000 | PHP_INI_PERDIR | PHP 5.3.9 以降で有効 |
| magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP <= 4.2.3 では PHP_INI_ALL。この非推奨の機能は、きっと 将来 削除 されるでしょう。 |
| magic_quotes_runtime | "0" | PHP_INI_ALL | この非推奨の機能は、きっと 将来 削除 されるでしょう。 |
| zend.enable_gc | "1" | PHP_INI_ALL | PHP 5.3.0 以降で有効。 |
以下に設定ディレクティブに関する 簡単な説明を示します。
assert() の評価を有効にします。
assertion が失敗した時にスクリプトの実行を終了します。
assertion が失敗する度に PHP 警告を発行します。
assertion が失敗した時にコールされるユーザ関数
assertion 式の評価時に error_reporting() の現在の 設定を使用します。有効な場合、評価時にエラーは表示されません。 (暗黙のうちに error_reporting(0) とします) 無効な場合、エラーは、error_reporting() の設定に 基づき設定されます。
このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。
動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。 動的ロード機能により、 open_basedir の拘束を全て 無視することが可能になります。 デフォルトでは、セーフモードを 使用している場合以外、動的ロードが可能です。セーフモードにおいては、 dl() を使用することが常に不可能になります。
スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれた スクリプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30 に設定されています。 PHP を コマンドライン から実行する場合のデフォルト設定は 0 です。
最大実行時間は、システムコール、ストリーム操作等の 影響を受けません。より詳細な情報については、 set_time_limit() 関数の説明を参照ください。
セーフモードで実行している場合にはこの設定を ini_set() で変更することはできません。次善策としては セーフモード をオフにするか あるいは php.ini 上で制限時間を変えるしかありません。
Web サーバ側でもタイムアウトの設定項目を持ち、 その設定で PHP の実行が中断されることもあります。 Apache には Timeout ディレクティブ、IIS には CGI タイムアウト関数があり、どちらもデフォルトで 300 秒に設定されています。 これらの意味については、Web サーバのドキュメントを参照ください。
スクリプトが POST、GET などの入力を パースする最大の時間を、秒単位で指定します。 これは、サーバがすべてのデータを受け取ってからスクリプトの実行を開始するまでの時間です。
入力変数 を最大で何個まで受け付けるかを指定します。 このディレクティブを使うと、ハッシュの衝突を悪用したサービス不能攻撃を受ける可能性を軽減できます。 このディレクティブで設定した数を超える入力変数があった場合は E_WARNING が発生し、 それ以降の入力変数はリクエストから削除されます。 多次元配列の場合、この制限は個々の次元ごとにしか適用されません。
この機能は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。
GPC(Get/Post/Cookie) 処理に関する magic_quotes の設定を行います。 magic_quotes が on の場合、'(シングルクオート)、" (ダブルクオート)、\(バックスラッシュ) 、NULL には全て自動的に バックスラッシュでエスケープ処理が行われます。magic_quotes_sybase も on の場合、シングルクオートは、バックスラッシュではなく シングルクオートでエスケープされます。
注意:
PHP 4 では、$_ENV 変数もエスケープの対象となります。
注意:
magic_quotes_sybase ディレクティブもONの場合、このオプションは、 magic_quotes_gpc を完全に上書きします。両方のオプションを有効に することにより、シングルクオートのみが '' のようにエスケープされます。 2重引用符、バックスラッシュ、NULは変更されず、エスケープされません。
get_magic_quotes_gpc() も参照してください。
この機能は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。
magic_quotes_runtime が有効の場合、 データベースおよびテクストファイルを含む外部ソースから データを返す全ての関数のクオートは、バックスラッシュで エスケープされます。magic_quotes_sybase も on の場合、シングルクオートは、バックスラッシュの代わりに シングルクオートでエスケープされます。
magic_quotes_runtime の影響を受ける関数は次のとおりです (PECL の関数は除きます)。
循環参照コレクタを有効あるいは無効にします。