正则取图片url

超人不会飞呐 2016-05-25 06:51:14
简单说就是要获取图片的来源
$url='<img class="trans"src="http://s0.ifengimg.com/2016/05/24/1_2988ea16.jpg"alt="二线房价猛涨 环京置业9000/平起"title="二线房价猛涨 环“ />';
$content=preg_match_all('/\<img.*?src *= *[\"|\']?(.*?)[\"|\']?\s.*?>/i', $url, $matches);
var_dump($matches);
只需要获取src的部分,但是我写的会获取到多余的内容。求正确的正则方法,最好附上说明哈,谢谢。
...全文
164 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
果酱很好吃 2016-05-26
  • 打赏
  • 举报
回复

$url='<img class="trans"src="http://s0.ifengimg.com/2016/05/24/1_2988ea16.jpg"alt="二线房价猛涨 环京置业9000/平起"title="二线房价猛涨 环“ />';
$content=preg_match_all('/<img.*?src=("|\')([^\1]+?)\1[^>]*?>/i', $url, $matches);

echo "<pre>";
print_r($matches[2]);
echo "</pre>";
/*
Array
(
    [0] => http://s0.ifengimg.com/2016/05/24/1_2988ea16.jpg
)
*/
一起混吧 2016-05-26
  • 打赏
  • 举报
回复
$content=preg_match_all('/\<img.*?src=[\"|\']?([^\"]+)[\"|\']?\s*.*?>/i', $url, $matches);
超人不会飞呐 2016-05-26
  • 打赏
  • 举报
回复
preg_match_all('/<img.*?\n*.*?\n*.*?src *= *("|\')([^\1]*?)\1[^>]*?>/i', $content, $matches);将4楼的+改成*,不知道是否存在问题,但是能正确获取了。初学正则还很多不懂。
超人不会飞呐 2016-05-26
  • 打赏
  • 举报
回复
4楼的当出现<img src="" height="18"/></a></li>会截取到其他的字符串" height=啊,有什么改进方法吗?
超人不会飞呐 2016-05-26
  • 打赏
  • 举报
回复
3楼的我也有考虑过,但是url当有单引号的时候出现http://beacon.sina.com.cn/a.gif?noScript' border='0' alt='' />这种情况了。。
傲雪星枫 2016-05-25
  • 打赏
  • 举报
回复
超人不会飞呐 2016-05-25
  • 打赏
  • 举报
回复
大神呢。。。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧