2024 年 PHP 日本研討會

輸出重寫用法

自 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.tagsurl_rewriter.hosts

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top