PHP 正規表現: HTML 内のすべての画像とリンクを一致させる方法

王林
リリース: 2023-06-23 14:02:01
オリジナル
1630 人が閲覧しました

インターネットの普及により、Web ページの制作と Web サイト開発は大きな需要のある業界になりました。 Webページ制作において、画像やリンクは欠かせない要素ですが、これらの要素を処理する際に正規表現は非常に役立ちます。この記事では、PHP 正規表現を使用して HTML 内のすべての画像とリンクを照合する方法を説明します。

1. 一致する画像

HTML では、通常、画像は <img> タグを使用して導入され、その形式は次のとおりです:

<img src="图片路径" alt="替代文字">
ログイン後にコピー

すべての For 画像と一致するには、すべての <img> タグと一致し、そこから画像パスを抽出する必要があります。照合には次の正規表現を使用できます:

$pattern = '/<img.*?src=["']?(.*?)["'].*?>/i';
ログイン後にコピー

この正規表現の機能は次のとおりです:

  • <img.*?>: 照合<img> 開始タグ。
  • src=["']?: src 属性と一致します。
  • (.*?): 非を使用します。貪欲なパターンは画像パスと一致します。
  • ["'].*?>: src 属性値および <img&gt の後の他の属性と一致します。 ; 終了タグ。

以下は簡単な PHP コードの例です:

$html = '12';
$pattern = '/<img.*?src=["']?(.*?)["'].*?>/i';
preg_match_all($pattern, $html, $matches);
$images = $matches[1];
print_r($images);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => 1.jpg
    [1] => 2.jpg
)
ログイン後にコピー

ご覧のとおり、すべての画像が正常に一致しました。 HTML パス。

2. 一致するリンク

リンクも Web ページでは不可欠な要素であり、通常は <a> タグを使用して実装されます。形式は次のとおりです。

<a href="链接地址">链接文字</a>
ログイン後にコピー

<a> タグを照合し、そこからリンク アドレスとリンク テキストを抽出する必要があります。次の正規表現を照合に使用できます:

$pattern = '/<a.*?href=["']?(.*?)["'].*?>(.*?)</a>/i';
ログイン後にコピー

この正規表現の機能は次のとおりです:

  • <a.*?>: 照合<a> 開始タグ。
  • href=["']?: href 属性と一致します。
  • (.*?): 非を使用します。貪欲なパターンはリンク アドレスと一致します。
  • ["'].*?>: href 属性値の後の他の属性と一致します。
  • (.*?)</a>: 欲張らないパターンを使用して、リンク テキストと終了タグを一致させます。

以下は簡単な PHP コードの例です:

$html = '百度谷歌';
$pattern = '/<a.*?href=["']?(.*?)["'].*?>(.*?)</a>/i';
preg_match_all($pattern, $html, $matches);
$urls = $matches[1];
$names = $matches[2];
print_r($urls);
print_r($names);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => http://www.baidu.com
    [1] => http://www.google.com
)
Array
(
    [0] => 百度
    [1] => 谷歌
)
ログイン後にコピー

ご覧のとおり、HTML 内のすべてのリンクが正常に一致しました。アドレスとリンクのテキスト。

3. 概要

PHP 正規表現を使用すると、HTML 内の画像とリンクを簡単に照合できるため、Web ページの制作や Web サイト開発の作業が大幅に簡素化されます。もちろん、実際の開発では、プログラムの安定性とセキュリティを確保するために、正規表現の最適化やエラー処理に注意を払う必要があります。

以上がPHP 正規表現: HTML 内のすべての画像とリンクを一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート