# output_add_rewrite_var

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

output_add_rewrite_var — Ajoute 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é.

Avertissement

Avant PHP 8.4.0, les hôtes à réécrire étaient définis dans session.trans_sid_hosts à la place de url_rewriter.hosts.

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

- output_reset_rewrite_vars() - Annule la réécriture d'URL
- ob_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
- ob_list_handlers() - Liste les gestionnaires d'affichage utilisés
- url_rewriter.tags
- url_rewriter.hosts