実行時設定
php.ini の設定により動作が変化します。
PHP_INI_* モードの詳細および定義については
どこで設定を行うのか を参照してください。
以下に設定ディレクティブに関する
簡単な説明を示します。
-
output_buffering
bool/int
-
このディレクティブを 'On' と設定することにより、全てのファイルに
関して出力バッファリングを有効にすることができます。
特定の大きさにバッファの大きさを制限したい場合、このディレクティブの
値として 'On' の代わりに最大バイト数(例:output_buffering=4096)
を使用することができます。
PHP-CLI ではこのディレクティブが常に Off となります。
-
output_handler
string
-
スクリプトの全ての出力を関数にリダイレクトすることができます。
例えば、output_handler に mb_output_handler()
を指定した場合、文字エンコーディングは透過的に指定したエンコーディングに
変換されます。出力ハンドラを指定することにより自動的に出力
バッファリングを on にします。
注意:
ob_iconv_handler() と
mb_output_handler() の両方で使用することは
できません。また、
ob_gzhandler() と
zlib.output_compression
の両方を使用することはできません。
注意:
このディレクティブには、ビルトイン関数のみが使用可能です。ユーザー定義の
関数については、ob_start() を使用してください。
-
implicit_flush
bool
-
デフォルトは false
です。これを true
に変更すると、PHP が
各出力ブロックの後で自動的に出力レイヤをフラッシュするよう
指定します。これは、各
print あるいは echo
そして HTML
ブロックの後で
flush() 関数をコールすることと等価です。
Web 環境の中で PHP を使用している時に
このオプションを on に変更すると、著しい性能低下が生じるため、
通常はデバッグ目的のみにすることが推奨されます。CLI
SAPI
のもとで実行される時、この値はデフォルトで true
になっています。
ob_implicit_flush() も参照ください。
-
url_rewriter.tags
string
-
url_rewriter.tags
は、
output_add_rewrite_var() でどの HTML タグをリライトするかを指定します。
デフォルトは
a=href,area=href,frame=src,input=src,form=
です。
form
は特別なタグです。<input hidden="session_id" name="session_name">
が form 変数に追加されます。
注意:
PHP 7.1.0 より前のバージョンでは、url_rewriter.tags
は session.trans_sid_tags のを指定するために使われていました。
PHP 7.1.0 以降は、fieldset
は特別なタグとはみなされなくなります。
-
url_rewriter.hosts
string
-
url_rewriter.hosts
は、
output_add_rewrite_var() に含めるリライト対象のホストを指定します。
デフォルトは $_SERVER['HTTP_HOST']
です。
複数のホストを指定する場合は "," でつなぎます。その際に、ホストとホストの間にスペースを入れてはいけません。つまり、
php.net,wiki.php.net,bugs.php.net
のように指定します。
support at losalgendesign dot com ¶10 years ago
Using "OFF" or no value on output_buffering will disable header modifications, like redirects or content-type or content-disposition resulting in the error we commonly attribute to output before header modifications:
Warning: Cannot modify header information - headers already sent by (output started at C:\PATH\filename.php:1) C:\PATH\filename.php on line 1
Example code with output_buffering = OFF which results in this behavior. Changing it to "ON" or giving it a value will likely cause normal behavior.
<?php header("Location: http://www.php.net"); ?>
or
<?php header("Content-Type: text/Calendar"); ?>
<?php header("Content-Disposition: inline; filename=appointment.ics"); ?>