• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

preciso de uma função que devolva o url base

6 mensagens neste tópico

A dúvida é a to título.

Preciso de um função que devolva o url com path para o script que está a ser executado.

Per exemplo:

funcao(http://exemplo.com/path/to/script.php'>http://exemplo.com/path/to/script.php);

deve devolver:

http://exemplo.com/path/to/

Mas atenção que isto

http://exemplo.com/path/to/index.php/extra/path

deve devolver o mesmo.

Já ando praqui às voltas e não encontro nenhuma forma simples elegante de fazer isto. Há por aí desenas de funções, cada uma com as suas limitações.

O que usariam neste caso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em PHP não te posso ajudar pq não conheço as funções que deveria usar...mas eu faria algo do tipo

str = "http://exemplo.com/path/to/index'>http://exemplo.com/path/to/index.php/extra/path"'>http://exemplo.com/path/to/index'>http://exemplo.com/path/to/index.php/extra/path"

str = cortar_ate(ultima_posicao("."))

str = cortar_ate(ultima_posicao("/"))

Ou seja, cortava o url até ao ultimo ponto (http://exemplo.com/path/to/index'>http://exemplo.com/path/to/index) e depois até à ultima slash (http://exemplo.com/path/to/).

Em vb.net seria algo deste tipo... em PHP não sei se tens estas funções tb disponiveis :)

Dim str As String = "http://www.exemplo.com/path/to/index.php/extra/path"
        str.Substring(0, str.Substring(0, str.LastIndexOf(".")).LastIndexOf("/")+1)

Não se era este tipo de ajuda que pretendias ... mas fica a dica

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, de forma limpa limpa, não estou a ver...

function ois($link){
$a = explode('.', str_ireplace("http://", '', $link), 2);
$a = explode('/', $a[0]);
unlink($a[count($a)-1]);
return "http://".implode("/", $a);
}

Should do the trick. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não se era este tipo de ajuda que pretendias ... mas fica a dica

Good point. Sim, temos a substr() e a strpos() (esta é que é um bocado manhosa...) que replicam essas. :)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

essa solução infelizmente tem falhas.

Se se configurar o apache para adicionar o .php caso encontre o ficheiro, isso deixa de funcionar :)

há alguma função que devolva a path a partir da raíz do site?

Assim podia sacar o host do request e path dessa funcção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, se tiveres uma função que te dê o caminho desde o /, é só tirares-lhe o $_SERVER['DOCUMENT_ROOT']...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora