Jump to content


Photo

Str_Query()


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 15/12/2009, 00:44

Sintaxe: str_query( [ mixed $vars ] )
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.

att,
Muller Dias
ex-administrador Fórum WMO




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq