PHP正規表示式實戰:匹配圖片鏈接

WBOY
發布: 2023-06-23 08:40:01
原創
1594 人瀏覽過

在網頁開發過程中,我們經常需要從文章中提取圖片鏈接,用於展示圖片或儲存到本地。這時,正規表示式就成為了一個重要的工具。本文將介紹如何使用PHP正規表示式來匹配圖片鏈接,並透過範例程式碼進行實戰演練。

一、圖片連結的配對規則

在高度複雜、多變的網頁中,圖片連結的格式各不相同。以下是一些常見的圖片連結格式:

  1. 相對路徑格式

  1. #絕對路徑格式

  1. #帶有class、width、height等屬性的格式

  1. 有單引號或雙引號的格式

  1. 包含不同後綴名的格式



根據上述格式,我們可以總結出一個通用的匹配規則,如下所示:

/?src=['"](.?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i

其中,正規表示式中的部分意義如下:

  • :符合標籤,且該標籤內可能包含其他屬性。
  • src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"]:符合src屬性值,且該屬性值必須以雙引號或單引號包裹著,同時支援多種字尾名。
  • .*?:用於匹配標籤內其他屬性。
  • i:表示大小寫不敏感。

二、使用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

  1. 使用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
登入後複製

)

三、總結

本文介紹瞭如何使用PHP正則表達式來匹配圖片鏈接,並提供了示例代碼進行實戰演練。在實際開發中,我們可以根據需要修改正規表示式的符合規則。同時,也可以將符合到的圖片連結用於圖片展示、下載或儲存等操作。

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板