Maison  >  Article  >  développement back-end  >  Pratique des expressions régulières PHP : faire correspondre les liens d'images

Pratique des expressions régulières PHP : faire correspondre les liens d'images

WBOY
WBOYoriginal
2023-06-23 08:20:371586parcourir

Dans le processus de développement Web, nous avons souvent besoin d'extraire des liens d'images à partir d'articles pour afficher des images ou les stocker localement. À l’heure actuelle, les expressions régulières deviennent un outil important. Cet article expliquera comment utiliser les expressions régulières PHP pour faire correspondre les liens d'images et réalisera des exercices pratiques à l'aide d'exemples de code.

1. Règles de correspondance pour les liens d'images

Dans les pages Web très complexes et modifiables, les formats des liens d'images varient. Voici quelques formats de liens d'image courants :

  1. Format de chemin relatif

593a1d649561360aa061c5401855766b

  1. Format du chemin absolu

98dd82fa3d6b28dd443622429262845d

  1. Format avec classe, largeur, hauteur et autres attributs

f841aa4405e31c5b7d83f58c421587be

  1. Format avec guillemets simples ou doubles# 🎜🎜##🎜 🎜#
  2. 96da4e62b88be62a375e15b0decb02db

contient différents suffixes Le format du nom
  1. 203f1b65967aec8ac84e3c48ece3b17f
0902538222c7ba15ebeaced8c6e28279

0febb59b8ac7baa071e2650125284b34
# 🎜🎜# Sur la base du format ci-dessus, nous pouvons résumer une règle générale de correspondance comme suit :

/e4dbcfef5902ebfec3067ff7868eb7f9/i

Parmi eux, une partie de la signification de l'expression régulière est la suivante : # 🎜🎜#1d0a94b69819f080670a8fe502661b4a : correspond à la balise a1f02c36ba31691bcfe87b2722de723b et la balise peut contenir d'autres attributs.

src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"] : correspond à la valeur de l'attribut src et la valeur de l'attribut doit être entourée entre guillemets doubles Ou entre guillemets simples, plusieurs suffixes sont pris en charge en même temps.

    .*? : utilisé pour faire correspondre d'autres attributs dans la balise a1f02c36ba31691bcfe87b2722de723b.
  • i : Indique une insensibilité à la casse.
  • 2. Utilisez le code PHP pour faire correspondre les liens d'images
  • Ensuite, nous utiliserons PHP pour faire correspondre les liens d'images.

Utilisez la fonction preg_match pour faire correspondre un seul lien d'image

La fonction preg_match est utilisée pour effectuer une correspondance d'expression régulière sur une seule chaîne. Ce qui suit est un code PHP permettant de faire correspondre un lien d'image unique :
    <?php
    $str = '<img src="../images/picture.jpg" class="picture" width="100" height="100">';
    $pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
    preg_match($pattern, $str, $matches);
    echo $matches[1];
    ?>
  1. Le résultat du code ci-dessus est :
../images/picture.jpg

# 🎜🎜#

Utilisez la fonction preg_match_all pour faire correspondre plusieurs liens d'image

La fonction preg_match_all est utilisée pour effectuer une correspondance d'expression régulière sur un ensemble de chaînes. Ce qui suit est un code PHP permettant de faire correspondre plusieurs liens d'images :

<?php
$str = '
<img src="../images/picture.jpg" class="picture" width="100" height="100">
<img src="http://www.example.com/images/picture.jpg">
<img src="http://www.example.com/images/picture.png">
<img src="http://www.example.com/images/picture.gif">
';
$pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
preg_match_all($pattern, $str, $matches);
print_r($matches[1]);
?>
    Le résultat du code ci-dessus est :
  1. Array
(

[0] => ../images/picture.jpg
[1] => http://www.example.com/images/picture.jpg
[2] => http://www.example.com/images/picture.png
[3] => http://www.example.com/images/picture.gif
# 🎜 🎜#)

3. Résumé

Cet article explique comment utiliser les expressions régulières PHP pour faire correspondre les liens d'images et fournit un exemple de code pour des exercices pratiques. Dans le développement réel, nous pouvons modifier les règles de correspondance des expressions régulières selon nos besoins. Dans le même temps, vous pouvez également utiliser le lien d'image correspondant pour des opérations telles que l'affichage, le téléchargement ou le stockage d'images.

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