É uma tarefa até comum para alguns programadores PHP colocar ou ter que trabalhar com URL query string. Para isto, em geral, utilizam métodos engenhosos para a tarefa, como implode, concatenação, etc. No entanto, desde o lançamento do PHP5, esta tarefa foi facilitada pela adição do método http_build_query, infelizmente ainda pouco conhecido. Abaixo um exemplo de uso:
$dados = array( 'idioma' => 'pt-BR', 'q' => 'Go Drall, GO', 'testar-escape' => 'acentuação', ); echo http_build_query($dados); // idioma=pt-BR&q=Go+Drall+GO&testar-escape=acentua%C3%A7%C3%A3o
Caso queira saber sobre as Partes de uma URL e como costumam ser parseadas, basta clicar no link.
Já mais conhecido dos programadores em geral é o trabalho inverso, que também é possível com as funções parse_url e parse_str:
http://devblog.drall.com.br/?s=url&submit=Procurar
$url = parse_url('http://devblog.drall.com.br/?s=php+url&submit=Procurar'); parse_str($url['query'], $query); echo $query['s']; // php url
A função parse_str por padrão extrai as variáveis no escopo em que foi executada. O segundo argumento que informamos no exemplo acima, como variável $query é para ser gerado por referência um resultado com o valor de retorno desejado.