ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現の練習: 画像リンクのマッチング

PHP 正規表現の練習: 画像リンクのマッチング

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2023-06-23 08:20:371783ブラウズ

Web 開発のプロセスでは、画像を表示したりローカルに保存したりするために、記事から画像リンクを抽出する必要がよくあります。このとき、正規表現は重要なツールになります。この記事では、PHP 正規表現を使用して画像リンクを照合する方法を紹介し、サンプル コードを使用して実践的な演習を行います。

1. 画像リンクの一致ルール

非常に複雑で変更可能な Web ページでは、画像リンクの形式は異なります。一般的な画像リンク形式の一部を次に示します。

  1. 相対パス形式

f2c1e9d33d026e38180fdaa6edf6d2ca

  1. 絶対パス形式

203f1b65967aec8ac84e3c48ece3b17f

  1. クラス、幅、高さ、その他の属性を使用したフォーマット

2bd3635dc817ed645d896e95b1b411bc

  1. 一重引用符または二重引用符を使用した形式

43da36405eba3590ad94f87e6fbdb6a4

  1. さまざまなサフィックスを含む形式

e889b71e302f340a8f1d6e5396d112ac
9086b68fddc20f80999dfb7d0934f895
53a6ac522257b5fdf415574408b90c46

上記の形式に従って、一般的な一致ルールを次のように要約できます:

/584f3fcf6df5e04e08e659839165b380/i

ここで、正規表現 意味の一部は次のとおりです。

  • 1d0a94b69819f080670a8fe502661b4a: a1f02c36ba31691bcfe87b2722de723b タグと一致します。タグには他の属性が含まれる場合があります。
  • src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"]: src 属性値と一致し、属性値は二重で囲む必要があります引用符または一重引用符 引用符で囲むと、複数のサフィックスが同時にサポートされます。
  • .*?: a1f02c36ba31691bcfe87b2722de723b タグ内の他の属性と一致するために使用されます。
  • i: 大文字と小文字を区別しないことを示します。

2. PHP コードを使用して画像リンクを照合する

次に、PHP を使用して画像リンクを照合します。

  1. preg_match 関数を使用して単一の画像リンクを照合する

preg_match 関数は、単一の文字列に対して正規表現の照合を実行するために使用されます。以下は、単一の画像リンクを照合するための PHP コードです:

<?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];
?>

上記のコードの出力は次のとおりです:

../images/picture.jpg

    # # preg_match_all 関数を使用して、複数の画像リンクを照合します。
preg_match_all 関数は、一連の文字列に対して正規表現の照合を実行するために使用します。以下は、複数の画像リンクを照合するための PHP コードです:

<?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]);
?>

上記のコードの出力は次のとおりです:

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. 概要

この記事では、PHP 正規表現を使用して画像リンクを照合する方法を紹介し、実践的な演習用のサンプル コードを提供します。実際の開発では、必要に応じて正規表現のマッチングルールを変更できます。同時に、一致した画像リンクを使用して、画像の表示、ダウンロード、保存などの操作を行うこともできます。

以上がPHP 正規表現の練習: 画像リンクのマッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。