解析PHP正則提取或替換img標(biāo)記屬性
核心代碼
<?php
/*PHP正則提取圖片img標(biāo)記中的任意屬性*/
$str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br />PHP正則提取或更改圖片img標(biāo)記中的任意屬性</center>';
//1、取整個(gè)圖片代碼
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);
echo $match[0];
//2、取width
preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];
//3、取height
preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];
//4、取src
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match);
echo $match[1];
/*PHP正則替換圖片img標(biāo)記中的任意屬性*/
//1、將src="/uploads/images/20100516000.jpg"替換為src="/uploads/uc/images/20100516000.jpg")
print preg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\${1}uc/images/\${3}",$str);
echo "<hr/>";
//2、將src="/uploads/images/20100516000.jpg"替換為src="/uploads/uc/images/20100516000.jpg",并省去寬和高
print preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \${2}uc/images/\${3}>",$str);
?>
PHP獲取所有圖片地址正則表達(dá)式
不帶圖片的所有圖片地址匹配:
preg_match_all('/(\s+src\s?\=)\s?[\'|"]([^\'|"]*)/is', $request->input('detail_content'), $match);
帶data:image/的:
preg_match_all('/(\s+src\s?\=)\s?[\'|"]([^\'|"]*)[data]/is', $request->input('detail_content'), $match);
PHP正則獲取一段字符串中所有圖片地址
有的時(shí)候我們需要獲取文章內(nèi)容或者字符串中所有的圖片地址,那么我們首先想到的就是正則匹配,該怎么實(shí)現(xiàn)呢,下面就是小編的親測(cè)方法
$str = '<p><img src="/upload/20180621/1529561322214.png" /></p><p><img src="/Home/images/404.jpg" style="" title="404.jpg"/></p><p><img src="/upload/20180621/1529561322214.png" style="" title="1529561322214.png"/></p><p><br/></p>'; $preg = '/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';//匹配img標(biāo)簽的正則表達(dá)式 preg_match_all($preg, $str, $allImg);//這里匹配所有的img echo '<pre>'; print_r($allImg);
輸出結(jié)果如下
( [0] => Array ( [0] => <img src="/upload/20180621/1529561322214.png" /> [1] => <img src="/Home/images/404.jpg" style="" title="404.jpg"/> [2] => <img src="/upload/20180621/1529561322214.png" style="" title="1529561322214.png"/> ) [1] => Array ( [0] => /upload/20180621/1529561322214.png [1] => /Home/images/404.jpg [2] => /upload/20180621/1529561322214.png ) )
到此這篇關(guān)于解析PHP正則提取或替換img標(biāo)記屬性的文章就介紹到這了,更多相關(guān)PHP 正則提取 替換img標(biāo)記屬性內(nèi)容請(qǐng)搜素腳本之家以前的文章或下面相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
PHP函數(shù)preg_match_all正則表達(dá)式的基本使用詳細(xì)解析
以下是對(duì)PHP中的函數(shù)preg_match_all正則表達(dá)式的基本使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
php產(chǎn)生隨機(jī)數(shù)的兩種方法實(shí)例代碼 輸出隨機(jī)IP
php產(chǎn)生隨機(jī)數(shù)的兩種方法實(shí)例代碼 輸出隨機(jī)IP,需要的朋友可以參考下。2011-04-04
php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類實(shí)例
這篇文章主要介紹了php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類,結(jié)合完整實(shí)例形式分析了php基于pdo實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)連接、增刪改查、事務(wù)等操作的方法,需要的朋友可以參考下2017-02-02
PHP編程求最大公約數(shù)與最小公倍數(shù)的方法示例
這篇文章主要介紹了PHP編程求最大公約數(shù)與最小公倍數(shù)的方法,涉及php數(shù)學(xué)計(jì)算的相關(guān)運(yùn)算技巧,需要的朋友可以參考下2017-05-05
Linux系統(tǒng)下使用XHProf和XHGui分析PHP運(yùn)行性能
這篇文章主要介紹了Linux系統(tǒng)下使用XHProf和XHGui分析PHP運(yùn)行性能的方法,該方案支持Apache與Nginx服務(wù)器及多種數(shù)據(jù)庫(kù)環(huán)境,需要的朋友可以參考下2015-12-12

