今まで気にしたこともなかったのですが、今日同僚から聞いて早速見てみました。
PHP の設定関数は、主に設定ファイルの制御を目的としたいくつかの ini_* 関数です。実際には、ini_get、ini_set、ini_get_all、ini_restore の 4 つの関数があります。個人的に最も便利なのは、ini_set と ini_get です。
* ini_get(): 設定ファイルのオプション値を取得します
この関数は、設定ファイル内のオプションの値を取得するために使用されます。 1 を返します。偽値の場合は 0 を返します。文字列は文字列を返します。
たとえば、マニュアルの例:
/*
php.ini には次の設定が含まれています:
display_errors = On
register_globals = Off
post_max_size = 8M
*/
echo 'display_errors = ' . ini_get( 'display_errors') . 'n'; // 表示エラーがオンかどうか
echo 'register_globals = ' . ini_get('register_globals') .// グローバル変数がオンかどうか
= ' . ini_get('post_max_size ') . 'n';// 送信できる最大ファイルサイズ
' post_max_size 1 = ' (ini_get('post_max_size') '?>
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size 1 = 9
この関数は主に設定ファイルを取得するためのもので、これにより多くの操作が容易になります。たとえば、文字列フィルタリングを制御したいが、magic_quotes_gpc がオンになっているかどうかわからないため、次のような関数を作成できます:
function stringFilter($str)
{
if (ini_get( 'magic_quotes_gpc)') {
return $str;
} else {
returnaddslashes($str);
}
}
もちろん、グローバル変数が開いているかどうかを知る方法がない場合は、次のような関数をカスタマイズすることもできます:
function getGetVar($var)
{
if (ini_set('register_gobals')) {
return $var;
} else {
return $_GET ['var'];
}
}
もちろん、さまざまな目的に使用できますし、自分自身でも徐々に理解できるようになります。
* ini_set関数: php.iniに特定の変数の値を設定します
これは、php.ini でオプション値を設定できることを意味します。たとえば、display_error オプションは閉じられていますが、プログラムのデバッグを容易にするためにプログラム内のエラー情報を表示したい場合は、次の関数を使用できます。
スクリプトの実行時間を増やす必要がある場合は、次のように設定できます:
実際、ini_set と ini_get を一緒に使用すると非常に効果的です。たとえば、独自のインクルード ファイル パスを設定ファイルに追加したいが、php.ini を変更する権限がある場合は、2 つの関数を組み合わせることができます: