自 PHP 7.1.0 起,output_add_rewrite_var()、output_reset_rewrite_vars() 使用專用的輸出緩衝區。也就是說,它不使用 透明 Session ID 輸出緩衝區。
範例 #1 輸出重寫範例
<?php
// 這段程式碼適用於 PHP 7.1.0、7.0.10、5.6.25 及更高版本。
// HTTP_HOST 為預設目標主機。請手動設定以使範例程式碼正常運作。
$_SERVER['HTTP_HOST'] = 'php.net';
// 輸出重寫器只會重寫表單。新增 a=href。
// 可以透過 tag_name=url_attr 的方式指定標籤,例如:img=src,iframe=src
// 設定之間不允許有空格。
// 表單標籤是一種特殊的標籤,會新增隱藏的輸入欄位。
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));
// 這會被新增到網址和表單中
output_add_rewrite_var('test', 'value');
?>
<a href="//php.dev.org.tw/index.php?bug=1234&test=value">bug1234</a>
<form action="https://php.dev.org.tw/?bug=1234&edit=1&test=value" method="post">
<input type="hidden" name="test" value="value" />
<input type="text" name="title" />
</form>
以上範例將輸出
<a href="//php.dev.org.tw/?bug=1234&test=value">bug1234</a> <form action="https://php.dev.org.tw/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" /> <input type="text" name="title" /> </form>
自 PHP 7.1.0 起,輸出重寫函式擁有自己的 INI 設定,url_rewriter.tags 和 url_rewriter.hosts。