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

nuno_couto

"Leitura" do domínio no url

6 mensagens neste tópico

yap...

ainda a semana passada fiz isso...

agora vou tomar uma bica... daqui a pouco já te afixo aqui o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta lá assim :

<?php
$url= $_SERVER['HTTP_HOST'];
$dominio = preg_match("/([^a-z]+)([a-z]+).([a-z]{2,4})/",$url,$matches);
echo "dominio = $matches[0]";
?>

edit :

como vês esse aparecia o pontinho antes.

Estou aprender as regular expressions, não são nada fáceis e já consegui por direito.

Usei foi 2 linhas e suponho que em uma fazia isso á vontade

<?php
$url= $_SERVER['HTTP_HOST'];
$dominio = preg_match("/[^a-z][a-z]*.[a-z]*/",$url,$matches);
$dominio = preg_match("/[^\W][a-z]*.[a-z]+/",$matches[0],$dom);
echo "dominio = $dom[0]";

?> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela ajuda. Optei pelo seguinte código:

(neste caso tenho dois domínios a apontar para um só alojamento e isto permite-me ter os dois sites a "funcionar" como sites diferentes. Apesar de vyzen.com e portalmundial.net funcionarem como um só domínio, o script redirecciona consoante o domínio do url)

<?php

$url= $_SERVER['HTTP_HOST'];

preg_match('@^(?:http://)?([^/]+)@i',
   "$url", $matches);
$host = $matches[1];

// get last two segments of host name
preg_match('/[^.]+\.[^.]+$/', $host, $matches);


   switch ($matches[0])
   {
     case "vyzen.com":
     $redirect="http://vyzen.vyzen.com";
     break;

     case "portalmundial.net":
     $redirect="http://portalmundial.portalmundial.net";
     break;

     default:
     $redirect="http://vyzen.vyzen.com";
   }

header("location: $redirect");
?> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Explica-me uma coisa:

<?php

$url= $_SERVER['HTTP_HOST'];

preg_match('@^(?:http://)?([^/]+)@i',
   "$url", $matches);
$host = $matches[1];

Podes me explicar o que faz essas regular expressions ?

è que pelo que aprendi tens que inicializar com uma barra / ou seja preg_match('/here/');

Depois usas o ponto de interrogação que quer dizer 0 ou 1 mas a referir-te a que ? aos : que vem a seguir ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

http://www.php.net/preg_match

Vai aqui... tem em baixo um exemplo que vai buscar exactamente o que eu queria... só alterei a parte que faz o redireccionamento

Sinceramente não conheço os comandos e apenas copiei o código, mas funciona muito bem

se quiseres experimentar escreve vê os seguintes endereços... portalmundial.net e vyzen.com e verifica que apontam para o mesmo sitio...  e depois faz vyzen.com/dominio.php e portalmundial.net/dominio.php

Se reparares, abres o mesmo ficheiro e ele redirecciona-te consoante o domínio, ou seja, vou ter dois sites distintos, apartir de um só alojamento que tem dois domínios parqueados.

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