PHP 8.3.4 Released!

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_add_rewrite_varAjoute une règle de réécriture d'URL

Description

output_add_rewrite_var(string $name, string $value): bool

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

Liste de paramètres

name

Le nom de la variable.

value

La valeur de la variable.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

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

Exemples

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
)

Voir aussi

add a note

User Contributed Notes 3 notes

up
2
Anonymous
15 years ago
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', '&');
?>
up
2
Niko
16 years ago
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>
up
-7
Bruce
16 years ago
Just to clarify...

session.use_trans_sid does NOT need to be enabled in order for output_add_rewrite_var() to work.
To Top