Maison >développement back-end >tutoriel php >Comment extraire le nom de domaine d'une URL en PHP en utilisant différentes méthodes ?

Comment extraire le nom de domaine d'une URL en PHP en utilisant différentes méthodes ?

DDD
DDDoriginal
2024-10-17 17:17:021053parcourir

How to Extract the Domain Name from a URL in PHP Using Different Methods?

Extracting the Domain Name from Any URL Using PHP

In PHP, you encounter various scenarios where you need to retrieve the domain name from a given URL. To cater to this requirement, here's a comprehensive solution that handles URLs in different formats.

Regular Expression Method

The following regular expression can be used to extract the domain name from any URL:

<code class="php">$regex = '/^(http|https):\/\/[a-z0-9]*\.[a-z0-9.]+/i';</code>

This regular expression will match all URLs, including subdomains, and capture the domain name.

Parse URL Method

Alternatively, you can use the parse_url() function to extract the host from the URL. The host contains the domain name and any subdomains.

<code class="php">$info = parse_url($url);
$host = $info['host'];</code>

Separating the Domain and TLD

To extract only the domain name (without any subdomains) and the top-level domain (TLD), you can use the following code:

<code class="php">$host_names = explode(".", $host);
$bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];</code>

This code splits the host into its component parts and extracts the domain name and TLD.

Example Usage

To demonstrate the usage of these methods, consider the following code:

<code class="php">$url = 'https://www.example.com/foo/bar';

// Using regular expression
preg_match($regex, $url, $matches);
$domain_name = $matches[0];

// Using parse_url and explode
$info = parse_url($url);
$host = $info['host'];
$host_names = explode(".", $host);
$bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];

echo "Domain name (regex): " . $domain_name . "<br>";
echo "Domain name and TLD (parse_url): " . $bottom_host_name;</code>

This code will output:

Domain name (regex): example.com
Domain name and TLD (parse_url): example.com

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