Xantals 0 Denunciar post Postado Agosto 30, 2018 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
Omar~ 87 Denunciar post Postado Agosto 31, 2018 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
Xantals 0 Denunciar post Postado Setembro 19, 2018 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
DouglasH101 0 Denunciar post Postado Setembro 19, 2018 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; } Compartilhar este post Link para o post Compartilhar em outros sites
Xantals 0 Denunciar post Postado Setembro 20, 2018 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