この記事は5年以上前の情報で、内容が古くなっている可能性があります。

phpの設定オプション指定方法(php.ini、 httpd.conf/.htaccess、php_ini等)

phpの設定オプション指定方法は、4種類

  • php.ini
  • httpd.conf
  • .htaccess
  • プログラム中に関数を呼び出す(ini_setなど)

それぞれの設定の仕方によって、設定オプションの有効にできる値と、できない値があります。 どれが有効化は、PHPのヘルプに一覧が載っています。 PHP: php.ini ディレクティブ - Manual

※Windowsの場合はレジストリでも設定できるそうです。まず使わないかと思われますが。

それぞれの書き方

php.ini

magic_quotes_gpc = off
output_buffering = off
mbstring.language = Japanese
mbstring.encoding_translation = off
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.internal_encoding = EUC-JP
mbstring.substitute_character = none
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII

httpd.conf と .htaccess(設定可能なオプションが違うけど、書式は同じ)

php_flag magic_quotes_gpc off
php_flag output_buffering off
php_value mbstring.language Japanese 
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation off
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.substitute_character none
php_value mbstring.detect_order SJIS,EUC-JP,JIS,UTF-8,ASCII
以下のディレクティブでくくると、そのバージョンのモジュールのみ適用
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
</IfModule>
<IfModule mod_php4.c>
php_flag magic_quotes_gpc on
</IfModule>

プログラム中

//ini_set関数を使う
ini_set('magic_quotes_gpc', 'off');
ini_set('mbstring.internal_encoding', 'UTF-8');
ini_set('mbstring.http_input', 'pass');
ini_set('mbstring.http_output', 'pass');
ini_set('mbstring.substitute_character ', 'none');
ini_set('mbstring.detect_order 'SJIS,EUC-JP,JIS,UTF-8,ASCII');
//それ用の関数を使う
mb_language('Japanese');
mb_internal_encoding('UTF-8');
mb_http_input('UTF-8');
mb_http_output('UTF-8');