function getSubDomain()
{
return substr_count($_SERVER['HTTP_HOST'], '.') > 1 ?
substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.')) : '';
}
Remarque :
Petite fonction permettant de renvoyer le sous domaine de la page courante.
N'hésitez pas si vous avez des idées d'améliorations.
php.programmation.com => php
programmation.com => RIEN
Pas encore trouvé une bonne méthode pour un domaine du type :
www.php.programmation.com => www.php
Je précise que je cherche à faire une fonction qui soit autonome donc pas du genre :
str_replace('.programmation.com', '', $_SERVER['HTTP_HOST']);
function getSubDomain($host = '') {
if (empty($host)) {
$host = $_SERVER['HTTP_HOST'];
}
return preg_replace('`([\w\.]+)(?:\.[\w]+){2}`i', '$1', $host);
}
Remarque :
Cette fonction retourne le sous-domaine courant.
http://www.domain.tld => www
http://www.user.domain.tld => www.user
http://www.user.name.domain.tld => www.user.name
http://domain.tld => 0
Cette regex gère les noms de domaines accentués, mais pas vraiment les noms de domaines comme .co.uk ou .asso.fr.
A priori, dans "mon.association.asso.fr", "mon.association" est un sous-domaine du domaine "asso" avec le tld ".fr".
Enfin, cette fonction n'est pas compatible avec PHP < 4.0.4