Retorno: String
Descrição: Substitui valores e/ou adiciona/remove parâmetros de uma query string e a retorna modificada. Para utilizar a função, basta passar um array com os parâmetros ou uma string (ex.: var1=valor&var2=valor).
Bibliotecas: Nenhuma
Limitações: PHP 5+
Função:
<?php /** * str_query() * * @author Muller Dias <mullerdias (at) gmail.com> * @author Paulo Freitas <paulofreitas dot web at gmail dot com> * @version 20091221 * @param array|string $vars parâmetros que devem ser substituídos/adicionados/removidos * @return string query string modificada */ function str_query($vars=array()) { if (is_string($vars) || is_array($vars)) { if (is_string($vars)) { parse_str($vars, $vars); } return http_build_query(array_filter(array_merge($_GET, $vars))); } return false; } ?>
Exemplos de utilização:
<?php // caso esteja acessando ?produto=televisao&cor=azul echo str_query(array('cor' => 'laranja')); // produto=televisao&cor=laranja echo str_query('cor=verde'); // produto=televisao&cor=verde echo str_query(array('produto' => NULL)); // cor=azul echo str_query(array('produto' => 'computador', 'cor' => 'amarelo')); // produto=computador&cor=amarelo echo str_query('produto=computador&cor=amarelo'); // produto=computador&cor=amarelo echo str_query(array('polegadas' => 42)); // produto=televisao&cor=azul&polegadas=42 echo str_query('polegadas=42'); // produto=televisao&cor=azul&polegadas=42 echo str_query(); // produto=televisao&cor=azul ?>
Changelog:
- 20091221
- array_filter() adicionado para remover parâmetros false (null, empty, etc).
- 20091215
- Versão Inicial - nessa versão, o Paulo Freitas me ajudou bastante na redução do código.
- Paulo Freitas and Dudu curtiram esta postagem