為了要產生完全有效的 XHTML 文件,您必須設定 arg_separator,在使用 output-add-rewrite-var 之前使用以下程式碼:
<?php
ini_set('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
output_add_rewrite_var — 新增 URL 重寫器值
此函式會啟動 `URL-Rewriter` 輸出緩衝處理程式(如果尚未啟動),儲存 `name` 和 `value` 參數,並在緩衝區清空時根據適用的 ini 設定重寫網址和表單。後續呼叫此函式將儲存所有額外的名稱/值對,直到處理程式關閉為止。
當輸出緩衝區被清空時(通過呼叫 ob_flush()、ob_end_flush()、ob_get_flush() 或在腳本結束時),`URL-Rewriter` 處理程式會根據 url_rewriter.tags 和 url_rewriter.hosts 設定指令的值,將名稱/值對作為查詢參數添加到 HTML 標籤屬性中的 網址,並向表單添加隱藏欄位。
添加到 `URL-Rewriter` 處理程式的每個名稱/值對都會被添加到 網址 和/或表單中,即使這樣會導致重複的 網址 查詢參數或具有相同名稱屬性的元素。
注意:一旦 `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 )
為了要產生完全有效的 XHTML 文件,您必須設定 arg_separator,在使用 output-add-rewrite-var 之前使用以下程式碼:
<?php
ini_set('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
這個函式也會將參數添加到 <input type="image"> 欄位!
範例
以下程式碼
<?
output_add_rewrite_var ('var','value');
echo '<form action="" method="post">
<input type="image" src="image.jpg" alt="go">
</form>';
?>
會輸出類似以下內容
<form action="" method="post">
<input type="hidden" name="var" value="value">
<input type="image" src="image.jpg?var=value" alt="go">
</form>