Добавляет значения в обработчик перезаписи URL-адресов

# output_add_rewrite_var

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

output_add_rewrite_var — Добавляет значения в обработчик перезаписи URL-адресов

### Описание

function 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'` его невозможно запустить снова.

Внимание

До PHP 8.4.0 хосты для перезаписи задавали через директиву session.trans_sid_hosts, а не url_rewriter.hosts.

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

`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 Пример добавления значения в обработчик перезаписи URL-адресов функцией 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
    )

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

- output_reset_rewrite_vars() - Сбросить значения обработчика URL
- ob_flush() - Сбрасывает (отправляет) значение, которое вернул активный обработчик вывода
- ob_list_handlers() - Возвращает список активных обработчиков вывода
- url_rewriter.tags
- url_rewriter.hosts

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open