Yann Forget wrote:
>
> Bonjour,
>
> Je cherche � r�cup�rer le domaine � partir d'une URL
> (en PHP).
>
> ex: http://machine.domaine.com -> domain.com
>
> J'utilise :
>
> $server = $HTTP_SERVER_VARS["HTTP_HOST"];
> $domain = eregi_replace("^[a-z]+\.(.*)$","\\1",$server);
>
> �a fonctionne dans le cas ci-dessus, mais pas si l'URL
> utilis�e est http://domaine.com.
>
> Unde id�e ?
Je vois 2 choses � corriger :
1) Un nom de domaine peut contenir des chiffres et des tirets
(voir <http://www.6-0.ch/>) comme indiqu� dans le
chapitre 2.3.1 du STD13
<http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1035.html>.
Je suis d'ailleurs �tonn� que le domaine "6-0.ch" ne suive
pas ce standard qui stipule qu'un nom de domaine doit
commencer par une lettre. Ai-je mal interpr�t� le standard,
est-il partiellement obsol�te ou "6-0.ch" viole-t-il le
standard ?
Bref, cela nous donne l'expression "[a-z0-9-]+" si la
comparaison ignore la casse et que l'on accepte
des noms de domaine 'interdits' (en l'occurrence c'est
peut-�tre une bonne id�e).
2) Ensuite il suffit de correspondre � la fin de la cha�ne.
"([a-z0-9-]+\.[a-z0-9-]+)$" devrait bien convenir.
On peut remarquer que cela ne correspond � rien d'int�ressant
avec des adresses num�riques (111.222.33.44).
Marc
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.