PHP 8.5.0 Alpha 1 available for testing

output_add_rewrite_var

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

output_add_rewrite_varAñade una regla de reescritura de URL

Descripción

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

Esta función inicia el gestor de búfer de salida 'URL-Rewriter' si no está activo, almacena los argumentos name y value, y cuando el búfer se vacía, reescribe las URLs y los formularios según los argumentos ini aplicables. Las llamadas posteriores a esta función almacenarán todas las parejas nombre/valor adicionales hasta que el gestor sea desactivado.

Cuando el búfer de salida se vacía (al llamar a ob_flush(), ob_end_flush(), ob_get_flush() o al final del script), el gestor 'URL-Rewriter' añade las parejas nombre/valor como argumentos de consulta a las URLs en los atributos de las etiquetas HTML y añade campos ocultos a los formularios según los valores de las directivas de configuración url_rewriter.tags y url_rewriter.hosts.

Cada pareja nombre/valor añadida al gestor 'URL-Rewriter' se añade a las URLs y/o formularios incluso si esto resulta en argumentos de consulta de URL duplicados o elementos con los mismos atributos de nombre.

Nota: Una vez que el gestor 'URL-Rewriter' ha sido desactivado, no puede ser reiniciado.

Advertencia

Antes de PHP 8.4.0, los hosts a reescribir se definían en session.trans_sid_hosts en lugar de url_rewriter.hosts.

Parámetros

name

El nombre de la variable.

value

El valor de la variable.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
7.1.0 A partir de PHP 7.1.0, se utiliza un búfer de salida dedicado, url_rewriter.tags se utiliza únicamente para las funciones de salida y url_rewriter.hosts está disponible. Anterior a PHP 7.1.0, las variables de reescritura definidas por output_add_rewrite_var() compartían un búfer de salida con el soporte transparente del ID de sesión (ver session.trans_sid_tags).

Ejemplos

Ejemplo #1 Ejemplo con output_add_rewrite_var()

<?php
ini_set
('url_rewriter.tags', 'a=href,form=');

output_add_rewrite_var('var', 'value');

// Algunos enlaces
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>'
;

// un formulario
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>'
;

print_r(ob_list_handlers());
?>

El resultado del ejemplo sería:

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

Ver también

add a note

User Contributed Notes 2 notes

up
2
Niko
17 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
1
Anonymous
16 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', '&');
?>
To Top