Maison  >  Article  >  développement back-end  >  Comment extraire le domaine racine des sous-domaines en PHP ?

Comment extraire le domaine racine des sous-domaines en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 08:13:30175parcourir

How to Extract Root Domain from Subdomains in PHP?

PHP : Extraire le domaine racine des sous-domaines

Lorsque vous travaillez avec des noms de domaine, il est souvent nécessaire de séparer le domaine racine de tous les sous-domaines. Considérons une variable contenant diverses structures de domaine :

here.example.com
example.com
example.org
here.example.org

Notre tâche consiste à créer une fonction qui convertit toutes ces variantes en leurs domaines racine correspondants, tels que "exemple.com" ou "exemple.org". Voici comment :

Solution utilisant une expression régulière

<code class="php">function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : '';
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
    return $regs['domain'];
  }
  return false;
}</code>

Explication :

  • parse_url() décompose l'URL en ses composants, y compris le nom de domaine.
  • L'expression régulière extrait uniquement le domaine racine à l'aide d'un groupe de capture ((?P...))).
  • Le modèle garantit que le le domaine se compose de :

    • Caractères alphanumériques ou tirets
    • Longueur maximale de 63 caractères pour le sous-domaine
    • Extension de 2 à 6 caractères (TLD) séparés par un point

Exemple d'utilisation :

<code class="php">echo get_domain("http://somedomain.co.uk"); // Outputs 'somedomain.co.uk'</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn