首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 正則表達式提取網頁所有圖片地址的多種方法

     編輯:PHP 綜合知識

本文總結三種常用正則模式,分別針對完整 URL、img 標籤 src 屬性、帶副檔名過濾的通用匹配,並提供 KindEditor 內容提取第 N 張圖片的實戰技巧。

一、匹配完整圖片 URL

function getimages($str) {
    $match_str = "/((https://)+([^ \r\n()^$!`\"'|\[\]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";
    preg_match_all($match_str, $str, $out, PREG_PATTERN_ORDER);
    return $out;
}

二、提取 img 標籤 src 屬性(推薦)

/<img.*src\s*=\s*[\"']?\s*([^>\"'\s]*)/i

實戰:KindEditor 內容中提取第 N 張圖片作為縮略圖:

preg_match_all("/<img.*src\s*=\s*[\"']?\s*([^>\"'\s]*)/i", str_ireplace('\\', '', $content), $arr);
// $arr[1] 為所有圖片地址數組

三、帶副檔名過濾的通用匹配

$ext = 'gif|jpg|jpeg|bmp|png';
preg_match_all("/(href|src)=([\"']?)([^ \"'>]+.($ext))\2/i", $str, $matches);
// $matches[3] 為純淨圖片地址

四、圖片自動加鏈接

$newstext = preg_replace('/(<img[^>]+src\s*=\s*[\"']?([^>\"'\s]+)[\"']?[^>]*>)/im', '<a href="$2">$1</a>', $newstext);

說明:$0 整體匹配,$1 第一個括號組,$2 第二個括號組(此處為圖片地址)。

五、preg_replace 與 str_replace 差異

  • str_replace:純字符替換。
  • preg_replace:正則替換,支援回引用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved