For a completely valid XHTML document you have to set the arg_separator, use this before you use output-add-rewrite-var:
<?php
ini_set('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
output_add_rewrite_var — Fügt Werte zum URL-Rewriter hinzu
Diese Funktion startet den
"URL-Rewriter"
-Ausgabepuffer-Handler, wenn dieser nicht
aktiv ist, speichert die Parameter name
und
value
und schreibt die URLs und
Formulare basierend auf den entsprechenden INI-Einstellungen neu, wenn der
Puffer geleert wird. Nachfolgende Aufrufe dieser Funktion speichern alle
zusätzlichen Name/Wert-Paare, bis der Handler beendet wird.
Wenn der Ausgabepuffer geleert wird (durch Aufruf von
ob_flush(), ob_end_flush(),
ob_get_flush() oder am Ende des Skripts), fügt der
"URL-Rewriter"
-Handler die Name/Wert-Paare entsprechend
den Werten der Konfigurationsanweisungen
url_rewriter.tags und
url_rewriter.hosts als
Abfrageparameter zu URLs in Attributen von HTML-Tags und
als versteckte Felder zu Formularen hinzu.
Jedes Name/Wert-Paar, das dem "URL-Rewriter"
-Handler
hinzugefügt wird, wird zu den URLs und/oder Formularen
hinzugefügt, auch wenn dies zu doppelten
URL-Abfrageparametern oder Elementen mit denselben
Namensattributen führt.
Hinweis: Wenn der
"URL-Rewriter"
-Handler deaktiviert wird, kann er nicht mehr gestartet werden.
name
Der Variablenname.
value
Der Variablenwert.
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Version | Beschreibung |
---|---|
7.1.0 | Seit PHP 7.1.0 verwendet die Funktion einen eigenen Ausgabepuffer; url_rewriter.tags wird nun nur noch für die Ausgabefunktionen verwendet und die Direktive url_rewriter.hosts wurde hinzugefügt. Vor PHP 7.1.0 teilten sich die Rewrite-Variablen, die mit output_add_rewrite_var() gesetzt wurden, einen Ausgabepuffer mit der transparenten Session-ID-Unterstützung (siehe session.trans_sid_tags). |
Beispiel #1 output_add_rewrite_var()-Beispiel
<?php
ini_set('url_rewriter.tags', 'a=href,form=');
output_add_rewrite_var('var', 'value');
// ein paar Links
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';
// ein Formular
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';
print_r(ob_list_handlers());
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
<a href="file.php?var=value">link</a> <a href="http://example.com">link2</a> <form action="script.php" method="post"> <input type="hidden" name="var" value="value" /> <input type="text" name="var2" /> </form> Array ( [0] => URL-Rewriter )
For a completely valid XHTML document you have to set the arg_separator, use this before you use output-add-rewrite-var:
<?php
ini_set('arg_separator.input', '&');
ini_set('arg_separator.output', '&');
?>
This function also adds a parameter to <input type="image"> fields!
Example:
This code:
<?
output_add_rewrite_var ('var','value');
echo '<form action="" method="post">
<input type="image" src="image.jpg" alt="go">
</form>';
?>
will output something like this:
<form action="" method="post">
<input type="hidden" name="var" value="value">
<input type="image" src="image.jpg?var=value" alt="go">
</form>