php正則取img標(biāo)記中任意屬性(正則替換去掉或改變圖片img標(biāo)記中的任意屬性)
更新時(shí)間:2013年08月13日 11:12:21 作者:
因有一項(xiàng)目新聞發(fā)布系統(tǒng),數(shù)據(jù)庫內(nèi)容字段中存儲(chǔ)的是原圖的路徑(當(dāng)然還有其他文字內(nèi)容啦,內(nèi)容里插圖時(shí),存的是圖片路徑),但前臺(tái)想使用縮略圖,琢磨1小時(shí)余,得到以下結(jié)果,可解決問題
因有一項(xiàng)目新聞發(fā)布系統(tǒng),數(shù)據(jù)庫內(nèi)容字段中存儲(chǔ)的是原圖的路徑(當(dāng)然還有其他文字內(nèi)容啦,內(nèi)容里插圖時(shí),存的是圖片路徑),但前臺(tái)想使用縮略圖,琢磨1小時(shí)余,得到以下結(jié)果,可解決問題(取img標(biāo)簽會(huì)了,取別的標(biāo)簽任意屬性自然也會(huì)了):
<?php
/*正則取圖片img標(biāo)記中的任意屬性*/
$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div style="float:left;">中國人</div>';
//取整個(gè)圖片代碼
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標(biāo)記中的任意屬性***************************************************************/
$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",并舍棄寬和高
(比如你想在前臺(tái)顯示縮略圖,但數(shù)據(jù)庫中存儲(chǔ)的是原圖的路徑。為什么要舍棄寬高??你縮略圖啊!還是原圖的寬高,會(huì)怎樣???)
*/
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
復(fù)制代碼 代碼如下:
<?php
/*正則取圖片img標(biāo)記中的任意屬性*/
$word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div style="float:left;">中國人</div>';
//取整個(gè)圖片代碼
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標(biāo)記中的任意屬性***************************************************************/
$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",并舍棄寬和高
(比如你想在前臺(tái)顯示縮略圖,但數(shù)據(jù)庫中存儲(chǔ)的是原圖的路徑。為什么要舍棄寬高??你縮略圖啊!還是原圖的寬高,會(huì)怎樣???)
*/
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str);
?>
相關(guān)文章
PHP函數(shù)utf8轉(zhuǎn)gb2312編碼
PHP函數(shù)utf8轉(zhuǎn)gb2312編碼...2006-12-12PHP數(shù)據(jù)庫操作二:memcache用法分析
這篇文章主要介紹了PHP數(shù)據(jù)庫操作memcache用法,結(jié)合實(shí)例形式詳細(xì)分析了memcache的下載、安裝、配置及相關(guān)使用技巧,需要的朋友可以參考下2017-08-08PHP實(shí)現(xiàn)圖片旋轉(zhuǎn)的方法詳解
這篇文章主要為大家詳細(xì)介紹了PHP如何實(shí)現(xiàn)圖片旋轉(zhuǎn)功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)PHP有一定幫助,感興趣的小伙伴可以了解一下2022-11-11php 連接mssql數(shù)據(jù)庫 初學(xué)php筆記
如果實(shí)現(xiàn)了PHP和MySQL鏈接了,PHP和MSSQL的鏈接其實(shí)很簡單; 支持MSSQL的本地鏈接和遠(yuǎn)程鏈接2010-03-03