在字串中擷取想要的圖片網址,對於熟悉正則表達式的開發者來說並不困難。本文提供一個實用的 PHP 範例,示範如何使用 preg_match_all 函數搭配正則模式,從 HTML 標籤中解析出 src 屬性的圖片路徑。
<?php
$str = '<p><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';
$pattern = '/<[img|IMG].*?src=[\"|\'](.*?(?:\.gif|\.jpg))[\"|\'].*?[\/]?>/';
preg_match_all($pattern, $str, $match);
print_r($match);
?>
Array
(
[0] => Array
(
[0] => <img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/>
)
[1] => Array
(
[0] => upfiles/2009/07/1246430143_1.jpg
)
)
陣列 $match[0] 包含完整符合的 <img> 標籤,而 $match[1] 則只保留捕獲群組中擷取到的圖片檔案路徑。此正則模式支援大小寫不敏感的 img 標籤,並能匹配以單引號或雙引號包裹的 src 屬性,副檔名限定為 .gif 或 .jpg。實際應用時可依需求擴充支援 .png、.webp 等格式。