PHP正則擷取頁面所有圖片地址,_PHP教程

來源:互聯網
上載者:User

PHP正則擷取頁面所有圖片地址,


<?php//取得頁面所有的圖片地址function getimages($str){$match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER);return $out;}?> 

/"'s]*)/i

,我使用kindeditor儲存文章,但是需要取出第N個圖片的地址作為文章的標誌圖片,文章代碼(內容的html)儲存到資料庫一個欄位,然後圖片地址儲存到另外一個欄位.我就是使用上面的正則解決的.

我說明下,上面的地址是直接擷取img標籤內src屬性的值.在使用該正則的php頁面訪問該路徑如果能找到圖片的話,可以直接使用,如果不能,你可以使用preg_match_all將所有地址先儲存到數組,然後處理路徑,比如擷取檔案名稱(不含路徑部分),然後重新組成url,再刪除圖片.

我的例子:

preg_match_all("/"'s]*)/i",str_ireplace("\","",$content),$arr); 

呵呵 我的內容部分被php給加上轉義了,所以我需要先把去除,str_ireplace("\","",$content),然後將匹配的內容儲存到$arr數組(二維的).

$arr[1]就是儲存該路徑的數組.

執行個體

<?php$ext = 'gif|jpg|jpeg|bmp|png';//羅列圖片尾碼從而實現多副檔名匹配 by http://www.bkjia.com 綠色軟體$str = '

';preg_match_all("/(href|src)=(["|']?)([^ "'>]+.($ext))\2/i", $str, $matches);var_dump($matches);?>

結果

array(5) {[0]=>array(3) {[0]=>string(57) "src="http://www.bkjia.com /data/soft_img/2010091101619.jpg""[1]=>string(57) "src="http://www.hzhuti.com/sonyericsson/w715/ 2010091029938.jpg""[2]=>string(57) "src="http://www.bkjia.com /data/soft_img/2010092839019.jpg""}[1]=>array(3) {[0]=>string(3) "src"[1]=>string(3) "src"[2]=>string(3) "src"}[2]=>array(3) {[0]=>string(1) """[1]=>string(1) """[2]=>string(1) """}[3]=>array(3) {[0]=>string(51) "http://www.bkjia.com /data/soft_img/2010091101619.jpg"[1]=>string(51) "http://www.bkjia.com /data/soft_img/2010091029938.jpg"[2]=>string(51) "http://www.bkjia.com /data/soft_img/2010092839019.jpg"}[4]=>array(3) {[0]=>string(3) "jpg"[1]=>string(3) "jpg"[2]=>string(3) "jpg"}}

PHP正則匹配圖片並給圖片加連結詳解

$newstext=preg_replace(preg_replace('/(]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im', ‘$1', $newstext); 

1.preg_replace和str_replace的區別:

str_replace只是純字元替換,而preg_replace才是正則替換

2.$0,$1,$2等的說明:

$0指的是被整個模式所匹配的文本;

$1指的是首個 ( ) 引用的串;

$2指的是第二個()引用的串; 以此類推

有關PHP正則擷取頁面所有圖片地址的知識,小編就給大家介紹到這裡,希望對大家有所協助!

您可能感興趣的文章:

  • PHP提取字串中的圖片地址[Regex]
  • 小談php正則提取圖片地址
  • PHP正則提取不包含指定網址的圖片地址的例子
  • php正則匹配文章中的遠程圖片地址並下載圖片至本地

http://www.bkjia.com/PHPjc/1113713.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1113713.htmlTechArticlePHP正則擷取頁面所有圖片地址, php//取得頁面所有的圖片地址function getimages($str){$match_str = "/((http://)+([^ rn()^$!`"'|[]{}]*)((.gif)|(.jpg)|(.bmp)|(.pn...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.