PHP 8.4.2 Released!

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», если он не активен, сохраняет значения параметров name и value, и когда буфер сбрасывается, перезаписывает URL-адреса и формы на основе пригодных ini-настроек. Очередные вызовы функции будут сохранять все дополнительные пары имя/значение до тех пор, пока обработчик не будет отключен.

Когда буфер вывода сбрасывается (вызовом функций ob_flush(), ob_end_flush(), ob_get_flush() или в конце работы скрипта), обработчик «URL-Rewriter» добавляет в атрибуты HTML-тегов пары имя/значение в качестве параметров запроса для URL-адресов и скрытые поля на основе значений директив конфигурации url_rewriter.tags и url_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(), использовали общий буфер вывода с поддержкой прозрачного идентификатора сессии (смотрите описание директивы 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">ссылка</a>
<a href="http://example.com">ссылка2</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">ссылка</a>
<a href="http://example.com">ссылка2</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 notes

up
2
Anonymous
16 years ago
For a completely valid XHTML document you have to set the arg_separator, use this before you use output-add-rewrite-var:

<?php
ini_set
('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
up
2
Niko
16 years ago
This function also adds a parameter to <input type="image"> fields!

Example:
This code:

<?
output_add_rewrite_var ('var','value');
echo '<form action="" method="post">
<input type="image" src="image.jpg" alt="go">
</form>';
?>

will output something like this:

<form action="" method="post">
<input type="hidden" name="var" value="value">
<input type="image" src="image.jpg?var=value" alt="go">
</form>
To Top