W3docs

Funzione PHP output_reset_rewrite_vars()

Scopri come la funzione output_reset_rewrite_vars() di PHP cancella tutte le variabili registrate dal rewriter di URL, con sintassi, valori restituiti ed esempi.

output_reset_rewrite_vars() è una funzione PHP integrata che cancella ogni variabile precedentemente registrata con il rewriter di URL. Il rewriter di URL è lo stesso meccanismo che PHP utilizza per trasmettere valori (in particolare l'ID di sessione, quando session.use_trans_sid è attivo) tra le richieste di pagina, aggiungendoli agli URL e inserendoli nei form HTML. Questa funzione ti restituisce il pieno controllo su quell'elenco — rimuove tutto ciò che hai aggiunto con output_add_rewrite_var().

Nota: questa è una vera funzione del core PHP dell'estensione di controllo dell'output. Non ha nulla a che fare con la superglobale $_GET né con l'API add_rewrite_var() di WordPress — sono cose completamente diverse.

Cosa fa output_reset_rewrite_vars()

Quando chiami output_add_rewrite_var('name', 'value'), PHP inizia ad aggiungere automaticamente name=value a ogni URL relativo e ad inserire un campo nascosto corrispondente in ogni form nel resto della pagina. Queste variabili restano attive fino al termine dell'output.

output_reset_rewrite_vars() interrompe immediatamente questo comportamento svuotando l'elenco delle variabili del rewriter. Qualsiasi output prodotto dopo la chiamata non porta più le variabili riscritte; l'output già inviato non viene modificato.

Sintassi

output_reset_rewrite_vars(): bool
  • Parametri: nessuno.
  • Valore restituito: true in caso di successo, false in caso di errore.

Esempio Base

Aggiungi una variabile, emetti dell'output che la utilizza, quindi reimposta tutto in modo che il resto della pagina sia pulito:

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

Il primo link viene riscritto perché la variabile è attiva; il secondo no, perché output_reset_rewrite_vars() l'ha rimossa.

Quando Usarla

  • Limitare la riscrittura a una parte della pagina. Usa output_add_rewrite_var() all'inizio di una sezione e output_reset_rewrite_vars() alla fine, così i link fuori da quella sezione restano puliti.
  • Cambiare set di variabili. Reimposta prima di registrare un gruppo diverso di variabili per evitare che valori residui si propaghino.
  • Disabilitare il trans-SID localmente. Quando PHP aggiunge automaticamente l'ID di sessione agli URL, il reset del rewriter impedisce che l'ID di sessione venga aggiunto a un determinato insieme di link (ad esempio, link verso un dominio esterno).

Verificare il Risultato

Il valore restituito indica se il reset è andato a buon fine:

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

Funzioni Correlate

FunzioneScopo
output_add_rewrite_var()Registra una variabile che il rewriter di URL aggiunge agli URL e ai form.
ob_start()Avvia il buffering dell'output, su cui si basa il rewriter.
ob_get_clean()Restituisce e scarta il buffer di output corrente.

Per una visione più ampia di come PHP gestisce l'output generato, consulta PHP Output Control. Se le variabili di riscrittura sono ID di sessione, il capitolo PHP Sessions spiega da dove provengono quei valori.

Conclusione

output_reset_rewrite_vars() è il complemento di output_add_rewrite_var(): svuota l'elenco delle variabili del rewriter di URL in modo che l'output successivo smetta di portare valori aggiunti automaticamente. Usala ogni volta che devi limitare o annullare la riscrittura degli URL all'interno di una singola richiesta.

Esercitazione

Pratica
Cosa fa la funzione PHP output_reset_rewrite_vars()?
Cosa fa la funzione PHP output_reset_rewrite_vars()?
Was this page helpful?