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 — Adiciona valores de reescritor de URL
Esta função inicia o manipulador de buffer de saída 'URL-Rewriter'
se ele não estiver ativo,
armazena os parâmetros name
e value
,
e quando o buffer é descarregado reescreve os URLs
e formulários com base nas configurações ini aplicáveis.
As chamadas subsequentes a esta função armazenarão todos os pares nome/valor adicionais
até que o manipulador seja desligado.
Quando o buffer de saída é descarregado
(chamando ob_flush(), ob_end_flush(),
ob_get_flush() ou no final do script),
o manipulador 'URL-Rewriter'
adiciona os pares nome/valor
como parâmetros de consulta para URLs em atributos de etiquetas HTML
e adiciona campos ocultos aos formulários com base nos valores das
diretivas de configuração
url_rewriter.tags e
url_rewriter.hosts.
Cada par nome/valor adicionado ao manipulador 'URL-Rewriter'
é adicionado aos URLs e/ou formulários,
mesmo que isso resulte em parâmetros de consulta de URL duplicados
ou elementos com atributos de mesmo nome.
Nota: Depois que o manipulador
'URL-Rewriter'
for desligado, ele não poderá ser iniciado novamente.
name
O nome da variável.
value
O valor da variável.
Versão | Descrição |
---|---|
7.1.0 | A partir do PHP 7.1.0, um buffer de saída dedicado é usado, url_rewriter.tags é usado somente para funções de saída e url_rewriter.hosts está disponível. Antes do PHP 7.1.0, variáveis de reescrita definidas por output_add_rewrite_var() compartilhavam um buffer de saída com suporte transparente para ID de sessão (veja session.trans_sid_tags). |
Exemplo #1 Exemplo de output_add_rewrite_var()
<?php
ini_set('url_rewriter.tags', 'a=href,form=');
output_add_rewrite_var('var', 'value');
// alguns "links"
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';
// um formulário
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';
print_r(ob_list_handlers());
?>
O exemplo acima produzirá:
<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>