array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.output-add-rewrite-var.php', 1 => 'output_add_rewrite_var', ), 'up' => array ( 0 => 'ref.outcontrol.php', 1 => '出力制御 関数', ), 'prev' => array ( 0 => 'function.ob-start.php', 1 => 'ob_start', ), 'next' => array ( 0 => 'function.output-reset-rewrite-vars.php', 1 => 'output_reset_rewrite_vars', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/outcontrol/functions/output-add-rewrite-var.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
output_add_rewrite_var — URL リライタの値を追加する
この関数は、'URL-Rewriter'
出力バッファハンドラをアクティブでない場合に開始します。
その上で、name
と value
パラメータを保存し、バッファがフラッシュされた際には
URL とフォームをini設定に基づいて書き換えます。
後にこの関数をコールした場合は、ハンドラがオフになるまで name/value
のペアをすべて保存します。
(ob_flush(), ob_end_flush(),
ob_get_flush() がコールされたり、
スクリプトが終了する際) 出力バッファがフラッシュされると、
'URL-Rewriter'
ハンドラが name/value のペアを
HTML タグの属性にある URL のクエリパラメータに追加します。
そして url_rewriter.tags と
url_rewriter.hosts
設定ディレクティブの値に基づいて hidden フィールドをの値をフォームに追加します。
'URL-Rewriter'
のハンドラに追加された name/value
ペアは、たとえ URL のクエリパラメータが重複したり、
同じ名前の属性をもつ要素が発生したとしても、
それぞれが URL やフォームに追加されます。
注意:
'URL-Rewriter'
ハンドラがオフにされると、 再び値を保存することはできません。
name
変数名。
value
変数の値。
バージョン | 説明 |
---|---|
7.1.0 | PHP 7.1.0 以降では、専用の出力バッファを用いるようになりました。 url_rewriter.tags はただ関数の出力にだけ使われるようになり、 url_rewriter.hosts が追加されました。 PHP 7.1.0 より前のバージョンでは、 output_add_rewrite_var() で設定したリライト変数は、 透過的セッションID出力バッファと同じ出力バッファを共有していました。 (session.trans_sid_tags を参照ください) |
例1 output_add_rewrite_var() の例
<?php
ini_set('url_rewriter.tags', 'a=href,form=');
output_add_rewrite_var('var', 'value');
// リンク
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';
// フォーム
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';
print_r(ob_list_handlers());
?>
上の例の出力は以下となります。
<a href="file.php?var=value">link</a> <a href="http://example.com">link2</a> <form action="script.php" method="post"> <input type="hidden" name="var" value="value" /> <input type="text" name="var2" /> </form> Array ( [0] => URL-Rewriter )