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 — Ajoute une règle de réécriture d'URL
Cette fonction démarre le gestionnaire de tampon de sortie 'URL-Rewriter'
s'il n'est pas actif,
stocke les paramètres name
et value
,
et lorsque le tampon est vidé, réécrit les URLs
et les formulaires en fonction des paramètres ini applicables.
Les appels ultérieurs à cette fonction stockeront toutes les paires nom/valeur
supplémentaires jusqu'à ce que le gestionnaire soit désactivé.
Lorsque le tampon de sortie est vidé
(en appelant ob_flush(), ob_end_flush(),
ob_get_flush() ou à la fin du script),
le gestionnaire 'URL-Rewriter'
ajoute les paires nom/valeur
en tant que paramètres de requête aux URLs dans les attributs des balises HTML
et ajoute des champs cachés aux formulaires en fonction des valeurs des
directives de configuration url_rewriter.tags et
url_rewriter.hosts.
Chaque paire nom/valeur ajoutée au gestionnaire 'URL-Rewriter'
est ajoutée aux URLs et/ou formulaires
même si cela résulte en des paramètres de requête d'URL dupliqués
ou des éléments avec les mêmes attributs de nom.
Note: Une fois que le gestionnaire
'URL-Rewriter'
a été désactivé, il ne peut pas être redémarré.
name
Le nom de la variable.
value
La valeur de la variable.
Version | Description |
---|---|
7.1.0 | À partir de PHP 7.1.0, un tampon de sortie dédié est utilisé, url_rewriter.tags est utilisé uniquement pour les fonctions de sortie et url_rewriter.hosts est disponible. Antérieur à PHP 7.1.0, les variables de réécriture définies par output_add_rewrite_var() partageaient un tampon de sortie avec la prise en charge transparente de l'ID de session (voir session.trans_sid_tags). |
Exemple #1 Exemple avec output_add_rewrite_var()
<?php
ini_set('url_rewriter.tags', 'a=href,form=');
output_add_rewrite_var('var', 'value');
// Quelques liens
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';
// un formulaire
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';
print_r(ob_list_handlers());
?>
L'exemple ci-dessus va afficher :
<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>