Maison > Article > développement back-end > Comment faire correspondre les liens URL à l'aide d'une expression régulière en PHP
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.
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
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
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
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
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-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/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!