Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
segue a minha função para:
<?php
function querystring($parans,$return=false){
$method = $_SERVER['SERVER_PORT'] == 80 ? "http://" : "https://";
$endereco = urldecode($method.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);
$endereco_completo = urldecode($method.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
$query_string = $_SERVER['QUERY_STRING'];
if(is_array($parans)){
foreach($parans as $variavel => $valor){
if(strstr($query_string,$variavel)){
$query_string = str_replace($variavel."=".$_GET[$variavel],$variavel."=".$valor,$query_string);
}
else{
if(empty($query_string)){
$query_string = "?".$variavel."=".$valor;
}
else{
$query_string .= "&".$variavel."=".$valor;
}
}
}
$query_string = !strstr($query_string,"?") ? "?".$query_string : $query_string;
if($endereco_completo != $endereco.$query_string && $return == false){
header("Location:". $endereco.$query_string);
}
else{
return $endereco.$query_string;
}
}
}
//chamada da função
$array = array("cod" => "50","p" => "50");
querystring($array);
?>
Em meu blog eu mostro outros exemplos de uso:
http://www.lucaspeperaio.com.br/blog/funcao-php-para-adicionar-variaveis-a-querystring
Caso queiram postar melhorias, agradeço também
Vivendo e aprendendo Andrey..
eu nem sabia que existia uma função pra isso, por isso eu fiz a minha rs..
A http_build_query faz a mesma coisa que eu fiz ali certo?
Tipo da para atualizar a variável se ela ja existir e eu passar outro valor, etc?
Nopz, eu disse em relação a montar a Query String, e sua função não atualiza valor, apenas monta a query string com o novo array.
<?php
function queryString ( array $params ) {
if ( count ( $params ) > 0 ) {
$method = $_SERVER['SERVER_PORT'] == 80 ? "http://" : "https://";
$endereco = rtrim ( $method . $_SERVER[ 'SERVER_NAME' ] . $_SERVER[ 'SCRIPT_NAME' ] , '?' ) ;
return sprintf ( 'Location: %s?%s' , $endereco , http_build_query ( $params , false , '&' ) ) ;
}
}
echo queryString( Array ( 'cod' => 50 ,'p' => 2 ) ) , PHP_EOL ; // Location: http://127.0.0.1/test.php?cod=50&p=2
echo queryString( Array ( 'cod' => 60 ,'p' => 2 ) ) , PHP_EOL ; // Location: http://127.0.0.1/test.php?cod=60&p=2
Isso aqui é alterar :seta: http://forum.imasters.com.br/topic/449845-mudar-parametro-de-pesquisa/page__view__findpost__p__1778855
Interessante seu código
obrigado pela contribuição
Amigo .. muito complicado isso aí, não ? posso fazer tudo que essa sua função faz dessa forma:
http_build_query ( Array ( 'cod' => 50 , 'p' => 50 ) ) ;