Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Xantals

Resgatando dados da url

Recommended Posts

Saudações amigos do portal IMASTERS;

Necessito de uma ajuda.

Por exemplo, o usuário vai ter que digitar algum nome após a url.... Assim. www.site.com.br/nome

Preciso pegar esse único nome que foi digitado após a barra e colocá-lo numa variável.

 

Desde já agradeço pela ajuda.

Alexandre Xantals

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples

Digamos então

$endereco = "www.site.com.br/nome";

Pego o endereço e transformo ele em array

Então tenho um índice para cada barra

No caso ficaria assim:  $explode = [0 => 'www.site.com.br', 1 => 'nome'];

$explode = explode('/', $endereco);

 

Mas vamos supor que eu tenha essa situação https://www.site.com.br/nome/

Ou seja terei 2 índices vazios pois há ocorrência de // onde uma delas é vazia e no final tenho novamente uma barra sem conteúdo depois

Então para resolver isso:

$sem_vazios = array_filter($explode);

 

Agora como saber qual é o último índice?
Bem, podemos usar de duas formas:

 

Primeira

$quantidade = count($sem_vazios) - 1; // É o total de indices menos 1 porque o primeiro índice de um array é sempre zero
echo $sem_vazios[$quantidade]; // Resultado é 'home'

 

A segunda forma seria reverter a ordem do array então o que era o último passa a ser o primeiro

$reverter = array_reverse($sem_vazios);
echo $reverter[0];  // Resultado é 'home'

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 30/08/2018 at 22:05, Omar~ disse:

Simples

Digamos então


$endereco = "www.site.com.br/nome";

Pego o endereço e transformo ele em array

Então tenho um índice para cada barra

No caso ficaria assim:  $explode = [0 => 'www.site.com.br', 1 => 'nome'];


$explode = explode('/', $endereco);

 

Mas vamos supor que eu tenha essa situação https://www.site.com.br/nome/

Ou seja terei 2 índices vazios pois há ocorrência de // onde uma delas é vazia e no final tenho novamente uma barra sem conteúdo depois

Então para resolver isso:


$sem_vazios = array_filter($explode);

 

Agora como saber qual é o último índice?
Bem, podemos usar de duas formas:

 

Primeira


$quantidade = count($sem_vazios) - 1; // É o total de indices menos 1 porque o primeiro índice de um array é sempre zero
echo $sem_vazios[$quantidade]; // Resultado é 'home'

 

A segunda forma seria reverter a ordem do array então o que era o último passa a ser o primeiro


$reverter = array_reverse($sem_vazios);
echo $reverter[0];  // Resultado é 'home'

 

 

Omar, antes de qualquer coisa, gostaria de agradecer pela resposta e vou testar este método...

Mas...

Acho que não fui muito claro...  Funciona assim: Eu tenho vários usuários num banco de dados e cada um tem um campo chamado 'url' que é o primeiro nome do usuário... A minha ideia é fazer com que cada usuário ao colocar esse nome após a barra e teclar ENTER, esse nome seja vinculado à uma variável; dá vou buscar no banco de dados o dono daquele nome para exibir os seus dados...

 

Acredito que htaccess seja a melhor opção, mas não conheço o suficiente...

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 horas atrás, DouglasH101 disse:

Tente algo assim.


if(isset($_SERVER['PHP_SELF'])){
	$url = $_SERVER['PHP_SELF']; // Recupera valor da url, ex: www.site.com.br/joao | retorno: /joao
	$resultado = explode('/', $url);   // retorno: Array ( [0] => [1] => joao )
	$nome = $resultado[1];

	echo $nome;
}

Bom dia DouglasH101;

Testei dessa forma mas não foi... Fiz da seguinte maneira:

Coloquei esse código no início do 'index.php' no diretório raíz do meu site e quando tento acessar somente o site normalmente e com isso aparece no início da página o nome 'index.php', mas quando digito algum nome depois do endereço, como por exemplo 'joao', vem a mensagem '

Not Found

The requested URL /joao was not found on this server.

De qualquer maneira, obrigado pela ajuda...

-----------------------------------------------------------------------

Funcionou da seguinte maneira.....

Se eu crio uma pasta de nome 'joao'  e coloco esse código no index.php dentro dessa pasta e acessar assim: 'www.site.com.br/joao' .... Assim funciona, mas não se for outro nome tipo 'www.site.com.br/andre', não funciona.

 

Obs...: Como terei mais de 500 usuários, não queria criar uma pasta para cada um; então gostaria que de forma dinâmica, o sistema pegasse o nome que será digitado após a url, colocaria numa variável e na sequência buscasse os dados desse usuário no banco de dados... tudo isso sei fazer, é só essa parte inicial que estou tendo problemas....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.