PHP Conference Japan 2024

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_add_rewrite_var新增 URL 重寫器值

說明

output_add_rewrite_var(字串 $name, 字串 $value): 布林值

此函式會啟動 `URL-Rewriter` 輸出緩衝處理程式(如果尚未啟動),儲存 `name` 和 `value` 參數,並在緩衝區清空時根據適用的 ini 設定重寫網址和表單。後續呼叫此函式將儲存所有額外的名稱/值對,直到處理程式關閉為止。

當輸出緩衝區被清空時(通過呼叫 ob_flush()ob_end_flush()ob_get_flush() 或在腳本結束時),`URL-Rewriter` 處理程式會根據 url_rewriter.tagsurl_rewriter.hosts 設定指令的值,將名稱/值對作為查詢參數添加到 HTML 標籤屬性中的 網址,並向表單添加隱藏欄位。

添加到 `URL-Rewriter` 處理程式的每個名稱/值對都會被添加到 網址 和/或表單中,即使這樣會導致重複的 網址 查詢參數或具有相同名稱屬性的元素。

注意一旦 `URL-Rewriter` 處理程式被關閉,它就不能再次啟動。

參數

name

變數名稱。

value

變數值。

返回值

成功時返回 true,失敗時返回 false

更新日誌

版本 說明
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
)

參見

新增筆記

使用者貢獻的筆記 2 則筆記

2
匿名
16 年前
為了要產生完全有效的 XHTML 文件,您必須設定 arg_separator,在使用 output-add-rewrite-var 之前使用以下程式碼:

<?php
ini_set
('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
2
Niko
16 年前
這個函式也會將參數添加到 <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>
To Top