Функция 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 в рамках одного запроса.