W3docs

Função PHP output_reset_rewrite_vars()

Aprenda como a função output_reset_rewrite_vars() do PHP limpa todas as variáveis registradas pelo reescritor de URL, com sintaxe, valores de retorno e exemplos.

output_reset_rewrite_vars() é uma função nativa do PHP que limpa todas as variáveis previamente registradas com o reescritor de URL. O reescritor de URL é o mesmo mecanismo que o PHP usa para encaminhar valores (principalmente o ID de sessão, quando session.use_trans_sid está ativado) entre requisições de página, adicionando-os às URLs e injetando-os em formulários HTML. Esta função devolve a você o controle total sobre essa lista — ela remove tudo o que você adicionou com output_add_rewrite_var().

Nota: Esta é uma função nativa do núcleo do PHP da extensão de controle de saída. Não tem nada a ver com a superglobal $_GET ou com a API add_rewrite_var() do WordPress — essas são funções não relacionadas.

O Que output_reset_rewrite_vars() Faz

Quando você chama output_add_rewrite_var('name', 'value'), o PHP começa a adicionar automaticamente name=value a todas as URLs relativas e a adicionar um campo oculto correspondente em todos os formulários do restante da página. Essas variáveis permanecem ativas até o final da saída.

output_reset_rewrite_vars() interrompe esse comportamento imediatamente ao esvaziar a lista de variáveis do reescritor. Qualquer saída produzida após a chamada não carrega mais as variáveis reescritas; a saída já enviada não é afetada.

Sintaxe

output_reset_rewrite_vars(): bool
  • Parâmetros: nenhum.
  • Valor de retorno: true em caso de sucesso, false em caso de falha.

Exemplo Básico

Adicione uma variável, emita alguma saída que a utilize e, em seguida, redefina para que o restante da página fique limpo:

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

O primeiro link é reescrito porque a variável está ativa; o segundo não é, pois output_reset_rewrite_vars() a removeu.

Quando Usar

  • Limitando a reescrita a uma parte da página. Use output_add_rewrite_var() no início de uma seção e output_reset_rewrite_vars() ao final, para que os links fora dessa seção permaneçam limpos.
  • Alternando conjuntos de variáveis. Redefina antes de registrar um grupo diferente de variáveis para evitar que valores antigos vazem.
  • Desativando o trans-SID localmente. Quando o PHP adiciona automaticamente o ID de sessão às URLs, redefinir o reescritor impede que o ID de sessão seja adicionado a um conjunto específico de links (por exemplo, links apontando para um domínio externo).

Verificando o Resultado

O valor de retorno indica se a redefinição foi bem-sucedida:

<?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.

Funções Relacionadas

FunçãoFinalidade
output_add_rewrite_var()Registra uma variável que o reescritor de URL adiciona às URLs/formulários.
ob_start()Inicia o buffer de saída, no qual o reescritor se baseia.
ob_get_clean()Retorna e descarta o buffer de saída atual.

Para uma visão mais ampla de como o PHP gerencia a saída gerada, consulte PHP Output Control. Se suas variáveis de reescrita forem IDs de sessão, o capítulo PHP Sessions explica de onde esses valores vêm.

Conclusão

output_reset_rewrite_vars() é o complemento de output_add_rewrite_var(): ela limpa a lista de variáveis do reescritor de URL para que a saída subsequente pare de carregar valores adicionados automaticamente. Use-a sempre que precisar delimitar ou desfazer a reescrita de URL dentro de uma única requisição.

Prática

Prática
O que a função PHP output_reset_rewrite_vars() faz?
O que a função PHP output_reset_rewrite_vars() faz?
Was this page helpful?