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. Имя и значение будут добавлены к URL (в качестве GET-параметров) и формам (как скрытые поля ввода) так же, как и идентификатор сессии, если включена прозрачная перезапись ссылок с использованием session.use_trans_sid.

Поведение этой функции контролируется параметрами php.ini url_rewriter.tags и url_rewriter.hosts.

Обратите внимание, что функция может быть успешно вызвана не более одного раза за запрос.

Замечание: Вызов этой функции неявно запустит буферизацию вывода, если она ещё не активна.

Список параметров

name

Имя параметра.

value

Значение параметра.

Возвращаемые значения

Возвращает true в случае успешного завершения или false в случае возникновения ошибки.

Список изменений

Версия Описание
7.1.0 До PHP 7.1.0 переменные перезаписи, установленные функцией output_add_rewrite_var(), используют тот же буфер модуля сессии "trans sid". Начиная с PHP 7.1.0, используется отдельный буфер, url_rewriter.tags используется только для функций вывода, добавлен url_rewriter.hosts.

Примеры

Пример #1 Пример использования функции output_add_rewrite_var()

<?php
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
)

Смотрите также

add a note add a note

User Contributed Notes 3 notes

up
1
Anonymous
15 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
1
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>
up
-3
Bruce
16 years ago
Just to clarify...

session.use_trans_sid does NOT need to be enabled in order for output_add_rewrite_var() to work.
To Top