W3docs

PHP output_reset_rewrite_vars() Funktion

Erfahren Sie, wie PHP's output_reset_rewrite_vars() alle beim URL-Rewriter registrierten Variablen löscht – mit Syntax, Rückgabewerten und Beispielen.

output_reset_rewrite_vars() ist eine eingebaute PHP-Funktion, die alle zuvor beim URL-Rewriter registrierten Variablen löscht. Der URL-Rewriter ist derselbe Mechanismus, den PHP verwendet, um Werte (vor allem die Session-ID, wenn session.use_trans_sid aktiviert ist) über Seitenanfragen hinweg weiterzugeben, indem diese an URLs angehängt und in HTML-Formulare injiziert werden. Diese Funktion gibt Ihnen die volle Kontrolle über diese Liste zurück – sie entfernt alles, was Sie mit output_add_rewrite_var() hinzugefügt haben.

Hinweis: Dies ist eine echte PHP-Kernfunktion aus der Output-Control-Erweiterung. Sie hat nichts mit dem $_GET-Superglobal oder der WordPress-API add_rewrite_var() zu tun – diese sind davon unabhängig.

Was output_reset_rewrite_vars() tut

Wenn Sie output_add_rewrite_var('name', 'value') aufrufen, hängt PHP automatisch name=value an jede relative URL an und fügt ein entsprechendes verstecktes Feld zu jedem Formular im restlichen Seiteninhalt hinzu. Diese Variablen bleiben aktiv, bis die Ausgabe endet.

output_reset_rewrite_vars() stoppt dieses Verhalten sofort, indem die Variablenliste des Rewriters geleert wird. Ausgaben, die nach dem Aufruf erzeugt werden, tragen die umgeschriebenen Variablen nicht mehr; bereits gesendete Ausgaben sind davon nicht betroffen.

Syntax

output_reset_rewrite_vars(): bool
  • Parameter: keine.
  • Rückgabewert: true bei Erfolg, false bei Fehler.

Grundlegendes Beispiel

Eine Variable hinzufügen, einige Ausgaben damit erzeugen und dann zurücksetzen, damit der Rest der Seite sauber bleibt:

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

Der erste Link wird umgeschrieben, weil die Variable aktiv ist; der zweite nicht, weil output_reset_rewrite_vars() sie entfernt hat.

Wann Sie diese Funktion verwenden würden

  • Umschreibung auf einen Seitenbereich begrenzen. Verwenden Sie output_add_rewrite_var() am Anfang eines Abschnitts und output_reset_rewrite_vars() am Ende, damit Links außerhalb dieses Abschnitts sauber bleiben.
  • Variablensets wechseln. Vor der Registrierung einer anderen Gruppe von Variablen zurücksetzen, um zu vermeiden, dass alte Werte durchsickern.
  • Trans-SID lokal deaktivieren. Wenn PHP die Session-ID automatisch an URLs anhängt, verhindert das Zurücksetzen des Rewriters, dass die Session-ID an eine bestimmte Gruppe von Links angehängt wird (zum Beispiel Links, die auf eine externe Domain verweisen).

Das Ergebnis prüfen

Der Rückgabewert zeigt an, ob das Zurücksetzen erfolgreich war:

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

Verwandte Funktionen

FunktionZweck
output_add_rewrite_var()Registriert eine Variable, die der URL-Rewriter an URLs/Formulare anhängt.
ob_start()Startet die Ausgabepufferung, auf der der Rewriter aufbaut.
ob_get_clean()Gibt den aktuellen Ausgabepuffer zurück und verwirft ihn.

Für einen umfassenderen Überblick darüber, wie PHP generierte Ausgaben verwaltet, siehe PHP Output Control. Wenn Ihre Rewrite-Variablen Session-IDs sind, erklärt das Kapitel PHP Sessions, woher diese Werte stammen.

Fazit

output_reset_rewrite_vars() ist das Gegenstück zu output_add_rewrite_var(): Es löscht die Variablenliste des URL-Rewriters, sodass nachfolgende Ausgaben keine automatisch angehängten Werte mehr tragen. Greifen Sie darauf zurück, wenn Sie URL-Rewriting innerhalb einer einzelnen Anfrage eingrenzen oder rückgängig machen möchten.

Übungen

Übung
Was macht die PHP-Funktion output_reset_rewrite_vars()?
Was macht die PHP-Funktion output_reset_rewrite_vars()?
Was this page helpful?