如何取出img标签的正则表达式(php)
发布网友
发布时间:2022-04-06 01:01
我来回答
共3个回答
热心网友
时间:2022-04-06 02:31
下面我提供点写法:
<?php
$html='<img src="/Cms/Upload/image/20140912/20140912041822_11373.png" alt="" />
<img src="/Cms/Upload/image/20140912/20140912041822_11373.png" alt="" width="233" />
<img src="/Cms/Upload/image/20140912/20140912041822_11373.png" alt="" height="400" />
';
$trip=array('width','height');//过滤的标签,这个根据需要修改
preg_match_all('/<img[^>]*\>/',$html,$match);//匹配img标签
$res=array();//结果存放
foreach($match[0] as $val)
{
$flag=true;//是否满足条件
foreach($trip as $s)
{
if(preg_match('/'.$s.'/',$val))//查到在过滤的标签中,不满足条件
{
$flag=false;
break;
}
}
if($flag)
{
preg_match_all('/image[^\"]*"/',$val,$temp);//满足条件取出类似image/20140912/20140912041822_11373.png"这一段
$res[]=substr(substr($temp[0][0],0,-1),6);//取出类似20140912/20140912041822_11373.png这一段,并存放到结果数组中
}
}
var_mp($res);
?>
热心网友
时间:2022-04-06 03:49
例子代码:
<?php
$s='<img src="/Cms/Upload/image/20140912/20140912041822_11373.png" alt="" />这个里面取出20140912041822_11373.png';
if (preg_match('|<img[^>]+src="([^"]+)"|i',$s,$r)) echo $r[1];
?>
上面的代码把src的文件全名取出来了的,如果你只要文件名,可以删除/之前的所有内容,这个处理应该不难了吧。
热心网友
时间:2022-04-06 05:23
$str = '[img]http://www.baidu.com/img/bdlogo.gif[/img]百度百度[img]http://127.0.0.1/jx09/p_w_upload/Mon_1308/196_403966_392c1785279171a.png[/img]<p>sssss</p>';preg_match_all("|\[img\](.*)\[/img\]|isU",$str,$myarr);print"<pre>";print_r($myarr[0]);print"</pre>";