output_add_rewrite_var

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

output_add_rewrite_var添加 URL 重写器值

说明

output_add_rewrite_var(string $name, string $value): bool

此函数如果 "URL-Rewriter" 输出缓冲区处理程序未激活,则启动它,存储 namevalue 参数,并在缓冲区刷新时根据适用的 ini 设置重写 URL 和表单。对该函数的后续调用将存储所有其他名称/值对,直到处理程序关闭。

当输出缓冲区被刷新时(通过调用 ob_flush()ob_end_flush()ob_get_flush() 或在脚本结束时),'URL-Rewriter' 处理程序会将名称/值对作为查询参数添加到 HTML 标签属性中的 URL,并根据 url_rewriter.tagsurl_rewriter.hosts 配置指令的值向表单添加隐藏字段。

添加到 'URL-Rewriter' 处理程序的每个名称/值对都会添加到 URL 和/或表单中,即使这会导致重复的 URL 查询参数或具有相同名称属性的元素。

注意: 一旦 '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
)

参见

添加笔记

用户贡献的笔记 3 个笔记

2
匿名
15 年前
对于完全有效的 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>
-7
Bruce
16 年前
只是为了澄清...

session.use_trans_sid 不需要启用才能使 output_add_rewrite_var() 工作。
To Top