W3docs

Fonction PHP output_reset_rewrite_vars()

Apprenez comment la fonction PHP output_reset_rewrite_vars() efface les variables enregistrées par le réécriture d'URL, avec syntaxe, valeurs de retour et exemples.

output_reset_rewrite_vars() est une fonction PHP intégrée qui efface toutes les variables précédemment enregistrées auprès du réécriture d'URL. Le réécriture d'URL est le mécanisme que PHP utilise pour transmettre des valeurs (notamment l'identifiant de session, lorsque session.use_trans_sid est activé) entre les requêtes de page en les ajoutant aux URL et en les injectant dans les formulaires HTML. Cette fonction vous redonne le contrôle total sur cette liste — elle supprime tout ce que vous avez ajouté avec output_add_rewrite_var().

Remarque : Il s'agit d'une véritable fonction du noyau PHP issue de l'extension de contrôle de sortie. Elle n'a rien à voir avec la superglobale $_GET ni avec l'API WordPress add_rewrite_var() — celles-ci sont sans rapport.

Ce que fait output_reset_rewrite_vars()

Lorsque vous appelez output_add_rewrite_var('name', 'value'), PHP commence automatiquement à ajouter name=value à chaque URL relative et à insérer un champ caché correspondant dans chaque formulaire du reste de la page. Ces variables restent actives jusqu'à la fin de la sortie.

output_reset_rewrite_vars() arrête immédiatement ce comportement en vidant la liste de variables du réécriture. Toute sortie produite après l'appel ne transportera plus les variables réécrites ; la sortie déjà envoyée n'est pas affectée.

Syntaxe

output_reset_rewrite_vars(): bool
  • Paramètres : aucun.
  • Valeur de retour : true en cas de succès, false en cas d'échec.

Exemple de base

Ajoutez une variable, émettez une sortie qui l'utilise, puis réinitialisez pour que le reste de la page soit propre :

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

Le premier lien est réécrit car la variable est active ; le second ne l'est pas, car output_reset_rewrite_vars() l'a supprimée.

Quand l'utiliser

  • Limiter la réécriture à une partie d'une page. Utilisez output_add_rewrite_var() en haut d'une section et output_reset_rewrite_vars() en bas afin que les liens en dehors de cette section restent propres.
  • Changer d'ensemble de variables. Réinitialisez avant d'enregistrer un autre groupe de variables pour éviter que des valeurs résiduelles ne se propagent.
  • Désactiver trans-SID localement. Lorsque PHP ajoute automatiquement l'identifiant de session aux URL, réinitialiser le réécriture empêche l'identifiant de session d'être ajouté à un ensemble spécifique de liens (par exemple, des liens pointant vers un domaine externe).

Vérification du résultat

La valeur de retour indique si la réinitialisation a réussi :

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

Fonctions associées

FonctionObjectif
output_add_rewrite_var()Enregistre une variable que le réécriture d'URL ajoute aux URL/formulaires.
ob_start()Démarre la mise en tampon de sortie, sur laquelle s'appuie le réécriture.
ob_get_clean()Retourne et supprime le tampon de sortie courant.

Pour une vue d'ensemble de la façon dont PHP gère la sortie générée, consultez PHP Output Control. Si vos variables de réécriture sont des identifiants de session, le chapitre PHP Sessions explique d'où proviennent ces valeurs.

Conclusion

output_reset_rewrite_vars() est le pendant de output_add_rewrite_var() : elle vide la liste de variables du réécriture d'URL afin que la sortie suivante cesse de transporter des valeurs ajoutées automatiquement. Utilisez-la chaque fois que vous devez délimiter ou annuler la réécriture d'URL au sein d'une seule requête.

Pratique

Pratique
Que fait la fonction PHP output_reset_rewrite_vars() ?
Que fait la fonction PHP output_reset_rewrite_vars() ?
Was this page helpful?