首頁 後端開發 php教程 PHP 正規表示式:如何匹配 HTML 中的所有圖片和鏈接

PHP 正規表示式:如何匹配 HTML 中的所有圖片和鏈接

Jun 23, 2023 am 11:32 AM
php 正規表示式 html匹配

隨著網路的普及,網頁製作和網站開發已經​​成為了一個需求量龐大的產業。而在網頁製作中,圖片和連結是不可或缺的元素,而正規表示式在處理這些元素時會大有用處。本文將介紹如何使用 PHP 正規表示式來匹配 HTML 中的所有圖片和連結。

一、符合圖片

在HTML 中,圖片通常使用<img> 標籤引入,其格式如下:

<img src="图片路径" alt="替代文字">
登入後複製

為了符合所有的圖片,我們需要匹配所有的<img> 標籤,並從中提取圖片路徑。我們可以使用以下正規表示式進行比對:

$pattern = '/<img.*?src=["']?(.*?)["'].*?>/i';
登入後複製

該正規表示式的作用是:

  • <img.*?>:匹配<img> 開始標籤。
  • src=["']?:符合src 屬性。
  • (.*?):使用非貪婪模式匹配圖片路徑。
  • ["'].*?>:匹配src 屬性值之後的其他屬性,以及<img&gt ; 結束標籤。

下面是一個簡單的PHP 程式碼範例:

$html = '<html><body><img src="1.jpg" alt="1"><img src="2.jpg" alt="2"></body></html>';
$pattern = '/&lt;img.*?src=[&quot;']?(.*?)[&quot;'].*?&gt;/i';
preg_match_all($pattern, $html, $matches);
$images = $matches[1];
print_r($images);
登入後複製

輸出結果為:

Array
(
    [0] =&gt; 1.jpg
    [1] =&gt; 2.jpg
)
登入後複製

可以看到,我們成功配對了HTML 中的所有圖片路徑。

二、符合連結

連結也是網頁中不可或缺的元素,通常使用 &lt;a&gt; 標籤實作。其格式如下:

&lt;a href=&quot;链接地址&quot;&gt;链接文字&lt;/a&gt;
登入後複製

我們需要匹配 &lt;a&gt; 標籤,並從中提取連結地址和連結文字。可以使用下列正規表示式進行比對:

$pattern = '/&lt;a.*?href=[&quot;']?(.*?)[&quot;'].*?&gt;(.*?)&lt;/a&gt;/i';
登入後複製

此正規表示式的作用是:

  • &lt;a.*?&gt;:符合&lt;a&gt; 開始標籤。
  • href=["']?:符合href 屬性。
  • (.*?):使用非貪婪模式符合連結位址。
  • ["'].*?&gt;:符合href 屬性值之後的其他屬性。
  • (.*?)&lt;/a&gt;:使用非貪婪模式來匹配連結文字和結束標籤。

下面是一個簡單的PHP 程式碼範例:

$html = '<html><body><a href="http://www.baidu.com">百度</a><a href="http://www.google.com">谷歌</a></body></html>';
$pattern = '/&lt;a.*?href=[&quot;']?(.*?)[&quot;'].*?&gt;(.*?)&lt;/a&gt;/i';
preg_match_all($pattern, $html, $matches);
$urls = $matches[1];
$names = $matches[2];
print_r($urls);
print_r($names);
登入後複製

輸出結果為:

Array
(
    [0] =&gt; http://www.baidu.com
    [1] =&gt; http://www.google.com
)
Array
(
    [0] =&gt; 百度
    [1] =&gt; 谷歌
)
登入後複製

可以看到,我們成功配對了HTML 中的所有鏈接地址和連結文字。

三、總結

使用 PHP 正規表示式可以方便地匹配 HTML 中的圖片和鏈接,可以大大簡化我們在網頁製作和網站開發中的工作。當然,在實際開發中我們需要注意正規表示式的最佳化和錯誤處理,以確保程式的穩定性和安全性。

以上是PHP 正規表示式:如何匹配 HTML 中的所有圖片和鏈接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles