1. 程式人生 > >php正則取img標記中alt src width heigh屬性

php正則取img標記中alt src width heigh屬性

<?php 
/*正則取圖片img標記中的任意屬性*/

$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg"    width="100" height="50"/><div style="float:left;">中國人</div>'; 
//取整個圖片程式碼 
preg_match('/<img(.[^<]*)src="?(.[^<"]*)"?(.[^<|/]*)/?>/is',$word,$matches); 
echo $matches[0];//結果:<img src="/upload/images/aaa.jpg" width="100">


$word = '<p height="22" align="cenetr">111 22</p> <img  height="60" src="/upload/images/aaa.jpg"    width="100" style=><div style="float:left;">中國人</div>'; 
//取width 
preg_match('/<img.+(width="?d*"?).+>/i',$word,$matches); 
echo $matches[1];

//取height 
preg_match('/<img.+(height="?d*"?).+>/i',$word,$matches); 
echo $matches[1];

//取src 
preg_match('/<img.+src="?(.+.(jpg|gif|bmp|bnp|png))"?.+>/i',$word,$matches); 
echo $matches[1];

/*正則替換去掉或改變圖片img標記中的任意屬性***************************************************************/ 
$str = '<p height="22" align="cenetr">111 22</p> <img  height="60" src="/upload/images/aaa.jpg"    width=100 style=><div style="float:left;">中國人</div><p height="22" align="cenetr">31313 224344</p> <img src="/upload/images/bbb.jpg"  height="60"    width=100 style=><div style="float:left;">1212121</div>';


//改變src屬性(此處將原來的src="/upload/images/bbb.jpg"改變為src="/upload/_thumbs/Images/bbb.jpg") 
print preg_replace('/(<img.+src="?.+)(images/)(.+.(jpg|gif|bmp|bnp|png)"?.+>)/i',"${1}_thumbs/Images/${3}",$str);


/*改變src屬性, 
此處將原來的src="/upload/images/bbb.jpg"改變為src="/upload/_thumbs/Images/bbb.jpg",並捨棄寬和高 
(比如你想在前臺顯示縮圖,但資料庫教程中儲存的是原圖的路徑。為什麼要捨棄寬高??你縮圖啊!還是原圖的寬高,會怎樣???) 
*/ 
print preg_replace('/(<img).+(src="?.+)images/(.+.(jpg|gif|bmp|bnp|png)"?).+>/i',"${1} ${2}_thumbs/Images/${3}>",$str);