先用正則表達式獲取IMG標簽,然後把每個IMG標簽的SRC抽取出來,並且組合成自己的內容,最後進行替換
我想對 html 的圖片進行提取.
代碼如下 復制代碼<img ico src="/noavatar_small.gif" />
<img src="/noavatar_small.gif" />
如上地址. 我想全部提取出來 但是包含'ico' 的地址 忽略. 求正則 , 就是有些圖片 提取.有些不提取.
例子:
代碼如下 復制代碼 <s*imgs+[^>]*?srcs*=s*('|")(.*?)\1[^>]*?/?s*>經改進後..
正確解答如下
代碼如下 復制代碼/<img(?:(?!(ico)).)+/>/
實例
代碼如下 復制代碼//要替換的內容
$content = '<img alt="" src="js/fckeditor/UserFiles/image/F201005201210502415831196.jpg" width="600" height="366"><br><br><br><br><img alt="" src="js/fckeditor/UserFiles/image/33_avatar_middle.jpg" width="120" height="120">';
//提取圖片路徑的src的正則表達式
preg_match_all("/<img(.*)src="([^"]+)"[^>]+>/isU",$content,$matches);
$img = "";
if(!empty($matches)) {
//注意,上面的正則表達式說明src的值是放在數組的第三個中
$img = $matches[2];
}else {
$img = "";
}
if (!empty($img)) {
$img_url = "http://".$_SERVER['SERVER_NAME'];
$patterns= array();
$replacements = array();
foreach($img as $imgItem){
$final_imgUrl = $img_url.$imgItem;
$replacements[] = $final_imgUrl;
$img_new = "/".preg_replace("///i","/",$imgItem)."/";
$patterns[] = $img_new;
}
//讓數組按照key來排序
ksort($patterns);
ksort($replacements);
//替換內容
$vote_content = preg_replace($patterns, $replacements, $content);