Page 1 sur 1
Récuperer nom de domaine sans les sous domaine
Posté : 07 mai 2009, 19:19
par fabien_14
Bonjour,
J'utilise actuellement une petite fonction pour me réduire les url
Code : Tout sélectionner
function getDomain($url)
{
return preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1",$url);
}
Cependant en cas de sous domaine dans l'url ceci me donne le résultat : sousdomaine.test.com
Comment avoir ce résultat : test.com ?
Merci de votre aide

Posté : 07 mai 2009, 21:39
par thehawk
Ne connaissant pas particulièrement je serais tenter de te dire :
return preg_replace("/^[\w]{2,6}:\/\/[.?]{1}([\w\d\.\-]+).*$/","$1",$url);
mais je suis vraiment pas sur !
Posté : 07 mai 2009, 21:44
par fabien_14
Bonsoir,
Merci de ta réponse
cependant ceci ne fonctionne pas l'url ne change pas.
Posté : 07 mai 2009, 22:46
par Nours312
salut : pas trés productif ... mais bon
function getDomain($url)
{
$t = preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1",$url);
$r = explode('.', $t);
retrun $r[count($r)-2].'.'.$r[count($r)-1];
}
Posté : 08 mai 2009, 00:17
par Elie
Plus simple mais plus bete
function getDomain($url)
{
$r = explode('.', $url);
retrun $r[1].'.'.$r[2];
}
Ca marche peut importe l'url ...
Posté : 08 mai 2009, 09:20
par fabien_14
Merci de ta réponse,
cependant j'ai un message d'erreur :
Code : Tout sélectionner
Parse error: syntax error, unexpected T_VARIABLE in /homepages/21/xxxxxx/htdocs/test/zone/test.php on line 941
Posté : 08 mai 2009, 09:23
par Sodams
Peux-tu nous montrer cette fameuse ligne 941?
Posté : 08 mai 2009, 09:27
par fabien_14
Bonjour,
Code : Tout sélectionner
$url = 'http://sousdomaine.test.org/toto/index.html';
function getDomain($url)
{
$r = explode('.', $url);
retrun $r[1].'.'.$r[2]; <<<<<< ligne défaut 941
}
echo getDomain($url);
Posté : 08 mai 2009, 09:30
par Sodams
return
à la place de
retrun

Posté : 08 mai 2009, 09:37
par fabien_14
Yes merci
Par contre j'ai tester le code de Nours
Code : Tout sélectionner
function getDomain($url)
{
$t = preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1",$url);
$r = explode('.', $t);
return $r[count($r)-2].'.'.$r[count($r)-1];
}
Celui ci fonctionne trés bien

Posté : 08 mai 2009, 12:36
par Elie
Le probleme est si l"url est
http://google.fr

Re: Récuperer nom de domaine sans les sous domaine
Posté : 30 sept. 2012, 12:07
par Stargame
Petite correction pour les domaines n'ayant pas de prefixe de sous domaine comme
http://google.fr
function GetDomain($url){
$r = explode('.', $url);
if(isset($r[2])){
return $r[1].'.'.$r[2];
}else{
return $r[0].'.'.$r[1];
}
}
Re: Récuperer nom de domaine sans les sous domaine
Posté : 30 sept. 2012, 12:26
par Elie
3 ans plus tard, il résolu le problème qui sauva l'humanité !