21,886
社区成员
发帖
与我相关
我的任务
分享
<?php
$string="我<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>来<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>了<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>....";
preg_match('/<img(.*?)src=\"?(?!.*?logo).*>/',$string,$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
?>
分析得够精辟, 但有个bug <img(.*?)(src)=\"(?!.*?logo).*>
<img(.*?)(src)=\"?(?!.*?logo).*>
还有个问题, 用这个字符串时, 把中间多余的字符都匹配出来了
$string="adsfasdfa<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>fasdfa<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>dsf<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>adsf";
preg_match('/<img(.*?)src=\"?(?!.*?logo).*>/',$string,$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
<pre>
<?php
$string="adsfasdfa<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>fasdfadsfadsf";
preg_match_all('/<img(?!.*?logo).*>/',$string,$matches);
print_r($matches);
?>
</pre>
$html = "爱上对方 <img src=\"upload.gif\" /> 士大夫";
$pre = "/<img(.[^<]*)src=\"?(.[^<\"]*)\"?(.[^<]*)\/?>/is";
if(preg_match_all($pre,$html,$p)){
foreach($p[2] as $path){
if(count(explode("logo",strtolower($path)))>1){
}else{
echo $path."<Br>";
}
}
}