W3docs

Функция PHP output_reset_rewrite_vars()

Узнайте, как функция output_reset_rewrite_vars() в PHP очищает все переменные, зарегистрированные перезаписчиком URL: синтаксис, возвращаемые значения и примеры.

output_reset_rewrite_vars() — это встроенная функция PHP, которая удаляет все переменные, ранее зарегистрированные в перезаписчике URL. Перезаписчик URL — это механизм PHP, используемый для передачи значений (в первую очередь идентификатора сессии, когда включён параметр session.use_trans_sid) между запросами страниц путём добавления их к URL и вставки в HTML-формы. Эта функция возвращает вам полный контроль над этим списком — она удаляет всё, что было добавлено с помощью output_add_rewrite_var().

Примечание: это настоящая встроенная функция PHP из расширения управления выводом. Она не имеет ничего общего с суперглобальной переменной $_GET или функцией add_rewrite_var() из WordPress — это совершенно разные вещи.

Что делает output_reset_rewrite_vars()

Когда вы вызываете output_add_rewrite_var('name', 'value'), PHP начинает автоматически добавлять name=value ко всем относительным URL и добавлять соответствующее скрытое поле в каждую форму на остальной части страницы. Эти переменные остаются активными до завершения вывода.

output_reset_rewrite_vars() немедленно останавливает это поведение, очищая список переменных перезаписчика. Любой вывод, произведённый после вызова, больше не содержит перезаписанных переменных; уже отправленный вывод не затрагивается.

Синтаксис

output_reset_rewrite_vars(): bool
  • Параметры: отсутствуют.
  • Возвращаемое значение: true в случае успеха, false в случае ошибки.

Базовый пример

Добавьте переменную, выведите часть содержимого, использующего её, затем сбросьте, чтобы остаток страницы был чистым:

<?php
// Register a rewrite variable: every relative link/form below gets var=value
output_add_rewrite_var('var', 'value');

echo '<a href="page.php">This link carries the variable</a>';
// Rendered as: <a href="page.php?var=value">...</a>

// Clear all registered rewrite variables
output_reset_rewrite_vars();

echo '<a href="other.php">This link is left untouched</a>';
// Rendered as: <a href="other.php">...</a>

Первая ссылка перезаписывается, потому что переменная активна; вторая — нет, потому что output_reset_rewrite_vars() удалила её.

Когда это использовать

  • Ограничение перезаписи частью страницы. Используйте output_add_rewrite_var() в начале раздела и output_reset_rewrite_vars() в конце, чтобы ссылки за пределами этого раздела оставались чистыми.
  • Смена наборов переменных. Сбрасывайте список перед регистрацией другой группы переменных, чтобы избежать утечки устаревших значений.
  • Локальное отключение trans-SID. Когда PHP автоматически добавляет идентификатор сессии к URL, сброс перезаписчика предотвращает добавление идентификатора сессии к определённому набору ссылок (например, к ссылкам, ведущим на внешний домен).

Проверка результата

Возвращаемое значение сообщает, был ли сброс выполнен успешно:

<?php
output_add_rewrite_var('token', 'abc123');

if (output_reset_rewrite_vars()) {
    echo "Rewrite variables were cleared.\n";
} else {
    echo "Failed to clear rewrite variables.\n";
}
// Output: Rewrite variables were cleared.

Связанные функции

ФункцияНазначение
output_add_rewrite_var()Регистрирует переменную, которую перезаписчик URL добавляет к URL и формам.
ob_start()Запускает буферизацию вывода, на которой строится перезаписчик.
ob_get_clean()Возвращает и удаляет текущий буфер вывода.

Для более широкого понимания того, как PHP управляет генерируемым выводом, смотрите раздел Управление выводом PHP. Если ваши переменные перезаписи — это идентификаторы сессий, глава Сессии PHP объясняет, откуда берутся эти значения.

Заключение

output_reset_rewrite_vars() является аналогом output_add_rewrite_var() с обратным действием: она очищает список переменных перезаписчика URL, чтобы последующий вывод перестал содержать автоматически добавляемые значения. Используйте её всякий раз, когда нужно ограничить или отменить перезапись URL в рамках одного запроса.

Практика

Практика
Что делает функция PHP output_reset_rewrite_vars()?
Что делает функция PHP output_reset_rewrite_vars()?
Was this page helpful?