php正則取img標記中任意屬性(正則替換去掉或改變圖片img標記中的任意屬性)
更新時間:2013年08月13日 11:12:21 作者:
因有一項目新聞發(fā)布系統(tǒng),數(shù)據(jù)庫內(nèi)容字段中存儲的是原圖的路徑(當然還有其他文字內(nèi)容啦,內(nèi)容里插圖時,存的是圖片路徑),但前臺想使用縮略圖,琢磨1小時余,得到以下結(jié)果,可解決問題
因有一項目新聞發(fā)布系統(tǒng),數(shù)據(jù)庫內(nèi)容字段中存儲的是原圖的路徑(當然還有其他文字內(nèi)容啦,內(nèi)容里插圖時,存的是圖片路徑),但前臺想使用縮略圖,琢磨1小時余,得到以下結(jié)果,可解決問題(取img標簽會了,取別的標簽任意屬性自然也會了):
<?php
/*正則取圖片img標記中的任意屬性*/
$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div style="float:left;">中國人</div>';
//取整個圖片代碼
preg_match('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i',$word,$matches);
echo $matches[0];//結(jié)果:<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"改變?yōu)閟rc="/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"改變?yōu)閟rc="/upload/_thumbs/Images/bbb.jpg",并舍棄寬和高
(比如你想在前臺顯示縮略圖,但數(shù)據(jù)庫中存儲的是原圖的路徑。為什么要舍棄寬高??你縮略圖啊!還是原圖的寬高,會怎樣???)
*/
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
復(fù)制代碼 代碼如下:
<?php
/*正則取圖片img標記中的任意屬性*/
$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div style="float:left;">中國人</div>';
//取整個圖片代碼
preg_match('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i',$word,$matches);
echo $matches[0];//結(jié)果:<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"改變?yōu)閟rc="/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"改變?yōu)閟rc="/upload/_thumbs/Images/bbb.jpg",并舍棄寬和高
(比如你想在前臺顯示縮略圖,但數(shù)據(jù)庫中存儲的是原圖的路徑。為什么要舍棄寬高??你縮略圖啊!還是原圖的寬高,會怎樣???)
*/
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
相關(guān)文章
PHP實現(xiàn)批量檢測網(wǎng)站是否能夠正常打開的方法
這篇文章主要介紹了PHP實現(xiàn)批量檢測網(wǎng)站是否能夠正常打開的方法,涉及php使用自定義函數(shù)及curl操作的相關(guān)技巧,需要的朋友可以參考下2016-08-08
php 函數(shù)使用可變數(shù)量的參數(shù)方法
下面小編就為大家?guī)硪黄猵hp 函數(shù)使用可變數(shù)量的參數(shù)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
PHP怎么實現(xiàn)網(wǎng)站保存快捷方式方便用戶隨時瀏覽
網(wǎng)站保存快捷方式以后在瀏覽起來就比較方便了,實現(xiàn)的方法有很多,下面為大家詳細介紹下使用PHP實現(xiàn)網(wǎng)站快捷方式的保存,有此需求的朋友可以參考下,希望對大家有所幫助2013-08-08
PHP 程序員的調(diào)試技術(shù)小結(jié)
大家都知道在開發(fā)過程中,代碼的調(diào)式非常重要,對于一些常見錯誤的調(diào)試技巧有助于提高代碼編寫的效率。2009-11-11

