Maison  >  Article  >  développement back-end  >  Comment faire correspondre les liens URL à l'aide d'une expression régulière en PHP

Comment faire correspondre les liens URL à l'aide d'une expression régulière en PHP

WBOY
WBOYoriginal
2023-06-24 09:30:114335parcourir

Dans le développement quotidien de PHP, nous devons souvent utiliser des expressions régulières pour faire correspondre et remplacer des chaînes. Parmi eux, la correspondance des liens URL est une exigence très courante. Cet article explique comment utiliser les expressions régulières en PHP pour faire correspondre divers liens URL.

  1. Match les liens URL ordinaires

Les liens URL ordinaires font référence à des liens commençant par http ou https. Nous pouvons utiliser l'expression régulière suivante pour les faire correspondre :

$pattern = "/((http|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#!]*[w-@?^=%&/~+#])?)/i";

où, je veux dire insensible à la casse. Cette expression régulière peut correspondre aux types de liens URL suivants :

http://www.example.com
http://www.example.com/index.php
http://www.example.com/?id=123
https://www.example.com
https://www.example.com/index.php
https://www.example.com/?id=123
  1. Liens d'adresse IP correspondants

En plus des liens URL ordinaires, nous devons parfois également faire correspondre les liens d'adresse IP. Nous pouvons utiliser l'expression régulière suivante pour les faire correspondre :

$pattern = "/((http|https)://)?(d{1,3}.d{1,3}.d{1,3}.d{1,3})(:d{1,5})?([w-.,@?^=%&:/~+#!]*[w-@?^=%&/~+#])?/i";

Cette expression régulière peut correspondre aux types de liens URL suivants :

http://192.168.0.1
http://192.168.0.1/index.php
http://192.168.0.1/?id=123
https://192.168.0.1
https://192.168.0.1/index.php
https://192.168.0.1/?id=123
  1. Faire correspondre les liens URL avec www

Dans certains cas, nous devons faire correspondre les URL avec l'URL www lien. Nous pouvons utiliser l'expression régulière suivante pour les faire correspondre :

$pattern = "/((http|https)://)?(www.)?[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#!]*[w-@?^=%&/~+#])?/i";

Cette expression régulière peut correspondre aux types de liens URL suivants :

http://www.example.com
http://www.example.com/index.php
http://www.example.com/?id=123
https://www.example.com
https://www.example.com/index.php
https://www.example.com/?id=123
  1. Match no-protocol links

Dans certains cas, nous devons faire correspondre les liens sans protocole , comme un lien comme //www.example.com. Nous pouvons utiliser l'expression régulière suivante pour les faire correspondre :

$pattern = "/(^|[
 ])([w]+?://[w]+[^ "
    <]*)|(^|[
 ])([w]+?//[w]+[^ "
    <]*)|(^|[
 ])(//[w]+[^ "
    <]*)/i";

Cette expression régulière peut correspondre aux types de liens URL suivants :

//www.example.com
//www.example.com/index.php
//www.example.com/?id=123
  1. Match divers liens mixtes

Dans le développement réel, nous pouvons avoir besoin de faire correspondre divers liens mixtes. , tels que des liens avec des paramètres de requête ou des ancres, ou des liens avec des caractères spéciaux. Nous pouvons utiliser l'expression régulière suivante pour les faire correspondre :

$pattern = "/((http|https)://)?([a-zA-Z0-9-.]+(.[a-zA-Z]{2,3})(:d{1,5})?)([w-.,@?^=%&amp;:/~+#]*[w-@?^=%&amp;/~+#])?/i";

Cette expression régulière peut correspondre aux types de liens URL suivants :

http://www.example.com/index.php?id=123#top
https://www.example.com/home?name=john&age=20
https://www.example.com/1+1=2

Jusqu'à présent, nous avons présenté comment utiliser des expressions régulières pour faire correspondre divers liens URL. Dans le développement réel, nous pouvons choisir des expressions régulières appropriées pour compléter la correspondance selon les besoins. Dans le même temps, il convient de noter que les expressions régulières ont un certain impact sur les performances. Vous devez donc faire attention aux problèmes de performances lors du traitement de grandes quantités de données.

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