Función PHP output_reset_rewrite_vars()
Aprende cómo output_reset_rewrite_vars() de PHP elimina todas las variables del reescritor de URL, con sintaxis, valores de retorno y ejemplos.
output_reset_rewrite_vars() es una función integrada de PHP que elimina todas las variables previamente registradas en el reescritor de URL. El reescritor de URL es el mismo mecanismo que PHP utiliza para reenviar valores (sobre todo el ID de sesión, cuando session.use_trans_sid está activo) entre solicitudes de página, añadiéndolos a las URL e inyectándolos en los formularios HTML. Esta función te devuelve el control total sobre esa lista: elimina todo lo que añadiste con output_add_rewrite_var().
Nota: Esta es una función nativa del núcleo de PHP de la extensión de control de salida. No tiene nada que ver con la superglobal
$_GETni con la APIadd_rewrite_var()de WordPress — son totalmente independientes.
Qué hace output_reset_rewrite_vars()
Cuando llamas a output_add_rewrite_var('nombre', 'valor'), PHP comienza a añadir automáticamente nombre=valor a cada URL relativa y agrega un campo oculto equivalente a cada formulario en el resto de la página. Esas variables permanecen activas hasta que finaliza la salida.
output_reset_rewrite_vars() detiene ese comportamiento de inmediato vaciando la lista de variables del reescritor. Cualquier salida producida después de la llamada ya no llevará las variables reescritas; la salida ya enviada no se ve afectada.
Sintaxis
output_reset_rewrite_vars(): bool- Parámetros: ninguno.
- Valor de retorno:
truesi tiene éxito,falsesi falla.
Ejemplo básico
Añade una variable, emite alguna salida que la utilice y luego restablece para que el resto de la página quede limpia:
<?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>El primer enlace es reescrito porque la variable está activa; el segundo no, porque output_reset_rewrite_vars() la eliminó.
Cuándo usarla
- Acotar la reescritura a una parte de la página. Usa
output_add_rewrite_var()al inicio de una sección youtput_reset_rewrite_vars()al final para que los enlaces fuera de esa sección permanezcan limpios. - Cambiar de conjunto de variables. Restablece antes de registrar un grupo diferente de variables para evitar que valores residuales se filtren.
- Deshabilitar trans-SID localmente. Cuando PHP agrega automáticamente el ID de sesión a las URL, restablecer el reescritor evita que el ID de sesión se añada a un conjunto específico de enlaces (por ejemplo, enlaces que apuntan a un dominio externo).
Verificar el resultado
El valor de retorno indica si el restablecimiento tuvo éxito:
<?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.Funciones relacionadas
| Función | Propósito |
|---|---|
output_add_rewrite_var() | Registra una variable que el reescritor de URL añade a las URL y formularios. |
ob_start() | Inicia el almacenamiento en búfer de salida, sobre el que se apoya el reescritor. |
ob_get_clean() | Devuelve y descarta el búfer de salida actual. |
Para una visión general de cómo PHP gestiona la salida generada, consulta PHP Output Control. Si tus variables de reescritura son IDs de sesión, el capítulo PHP Sessions explica de dónde provienen esos valores.
Conclusión
output_reset_rewrite_vars() es la contraparte de output_add_rewrite_var(): borra la lista de variables del reescritor de URL para que la salida posterior deje de llevar valores añadidos automáticamente. Úsala cuando necesites acotar o deshacer la reescritura de URL dentro de una sola solicitud.