Maison php教程 php手册 PHP用正则匹配获取URL中的域名

PHP用正则匹配获取URL中的域名

Jun 13, 2016 am 09:39 AM
url 正则表达式

在PHP的官网上看到的parse_url()函数的替代方案。结果和parse_url()函数差不多,是使用正则实现的。

URI 是 Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位。 对象分组:

1

2

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?

12            3  4          5       6  7        8 9

Copier après la connexion

测试代码如下:

1

2

3

4

5

6

<?php

$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~i';

$url = 'http://www.bkjia.com/pub/ietf/uri/#Gonn';

$url = trim($url);

preg_match_all($search, $url ,$rr);

printf("<p>输出URL数据为:</p><pre class="brush:php;toolbar:false">%s

Copier après la connexion
\n",var_export( $rr ,TRUE)); /* 各分组如下 $1 = http: $2 = http $3 = //www.bkjia.com $4 = www.bkjia.com $5 = /pub/ietf/uri/ $6 = $7 = $8 = #Gonn $9 = Gonn */ ?>

上面的正则表达式可以获取URL中的任何一部分,下面的代码则简单一些:

1

2

3

4

5

6

7

8

<?php

// 从 URL 中取得主机名

preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.bkjia.com/index.html", $matches);

$host = $matches[2];

// 从主机名中取得后面两段

preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);

echo "domain name is: {$matches[0]}\n";

?>

Copier après la connexion
Déclaration de ce site Web
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

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Mar 01, 2024 pm 01:20 PM

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre

Expressions régulières PHP : correspondance exacte et exclusion des inclusions floues Expressions régulières PHP : correspondance exacte et exclusion des inclusions floues Feb 28, 2024 pm 01:03 PM

Expressions régulières PHP : correspondance exacte et exclusion des inclusions floues

Validation des expressions régulières PHP : détection du format numérique Validation des expressions régulières PHP : détection du format numérique Mar 21, 2024 am 09:45 AM

Validation des expressions régulières PHP : détection du format numérique

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? May 31, 2024 pm 01:04 PM

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ?

Quelle est la différence entre HTML et URL Quelle est la différence entre HTML et URL Mar 06, 2024 pm 03:06 PM

Quelle est la différence entre HTML et URL

Maîtriser les expressions régulières et le traitement des chaînes en langage Go Maîtriser les expressions régulières et le traitement des chaînes en langage Go Nov 30, 2023 am 09:54 AM

Maîtriser les expressions régulières et le traitement des chaînes en langage Go

Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Jun 02, 2024 am 09:00 AM

Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ?

Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ? Jun 02, 2024 pm 07:31 PM

Comment vérifier le mot de passe à l'aide d'une expression régulière dans Go ?

See all articles