Maison  >  Article  >  développement back-end  >  Expression régulière PHP : Comment faire correspondre tous les liens d'image en HTML

Expression régulière PHP : Comment faire correspondre tous les liens d'image en HTML

PHPz
PHPzoriginal
2023-06-23 11:17:332191parcourir

Dans les pages HTML, nous devons souvent extraire des liens d'images pour les utiliser à d'autres occasions, ou effectuer du téléchargement d'images, un traitement par lots, etc. À l’heure actuelle, les expressions régulières PHP peuvent nous aider à faire correspondre rapidement et précisément tous les liens d’images.

1. Analyser les liens d'images en HTML

En HTML, les liens d'images apparaissent généralement sous la forme de balises a1f02c36ba31691bcfe87b2722de723b, et leur format est le suivant :

<img src="image.jpg" alt="图片">

Parmi eux, l'attribut src précise l'adresse du lien du image. Généralement, les formats des liens images sont les suivants :

  1. Lien relatif : /images/picture.jpg
  2. Lien absolu : https://www.example.com/images/picture.jpg
  3. Lien avec paramètres : https ://www.example.com/images/picture.jpg?size=large
  4. Lien de chemin relatif : ../images/picture.jpg

Nous devons écrire des expressions régulières pour correspondre à ces quatre formats de lien .

2. Lien d'image de correspondance d'expression régulière PHP

Il existe de nombreux types de fonctions d'expression régulière en PHP, parmi lesquelles preg_match() est la plus couramment utilisée, qui peut être utilisée pour faire correspondre des chaînes spécifiées à partir de texte. Ce qui suit est une expression régulière qui peut correspondre aux quatre formats de lien d'image ci-dessus :

$pattern = '/<img.+?src=['"](.+?)['"].*?>/';

Cette expression régulière se compose de plusieurs parties, expliquons-les une par une ci-dessous :

  1. 8353d66e33edb18c959d4d33ac239554

Ensuite, nous utilisons la fonction preg_match() pour extraire tous les liens d'image en HTML :

$html = file_get_contents('example.html'); // 读取 HTML 文件
preg_match_all($pattern, $html, $matches); // 匹配链接
$imgUrls = $matches[1]; // 获取匹配到的链接地址

Dans ceci De cette façon, nous pouvons obtenir un tableau $imgUrls contenant tous les liens d'image. Si vous souhaitez faire correspondre uniquement les liens d'image dans un certain format, vous pouvez apporter quelques modifications à l'expression régulière, comme faire correspondre uniquement les liens absolus :

$pattern = '/<img.+?src=['"](https?://.+?)['"].*?>/';

Cette expression régulière. ajoute http ou https La limitation de l'en-tête du protocole est que seuls les liens absolus commençant par ces deux protocoles correspondent.

Résumé

Utiliser des expressions régulières PHP pour faire correspondre les liens d'image en HTML n'est pas une question compliquée. lien correspondant en fonction du format du lien. Expression régulière, puis utilisez la fonction preg_match() pour extraire rapidement et précisément tous les liens. Si vous avez souvent besoin d'extraire d'autres contenus du HTML, vous pouvez également utiliser une méthode similaire.

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