使用php获取字符串中的第一个图像
我正在尝试从我的每篇文章中获取第一张图片。如果我只有一张图像,下面的代码效果很好。但如果我有多个,它会给我一个图像,但并不总是第一个。
我真的只想要第一张图片。很多时候,第二个图像是下一个按钮,
$texthtml = 'Who is Sara Bareilles on Sing Off<br>
<img alt="Sara" title="Sara" src="475993565.jpg"/><br>
<img alt="Sara" title="Sara two" src="475993434343434.jpg"/><br>';
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $texthtml, $matches);
$first_img = $matches [1] [0];
现在我可以将这个“$first_img”粘贴在简短描述的前面
<img alt="Sara" title="Sara" src="<?php echo $first_img;?>"/>
I'm trying to get the first image from each of my posts. This code below works great if I only have one image. But if I have more then one it gives me an image but not always the first.
I really only want the first image. A lot of times the second image is a next button
$texthtml = 'Who is Sara Bareilles on Sing Off<br>
<img alt="Sara" title="Sara" src="475993565.jpg"/><br>
<img alt="Sara" title="Sara two" src="475993434343434.jpg"/><br>';
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $texthtml, $matches);
$first_img = $matches [1] [0];
now I can take this "$first_img" and stick it in front of the short description
<img alt="Sara" title="Sara" src="<?php echo $first_img;?>"/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您只需要第一个源标记,则应使用
preg_match
而不是preg_match_all
,这对您有用吗?If you only need the first source tag,
preg_match
should do instead ofpreg_match_all
, does this work for you?不要使用正则表达式来解析 html。
使用 html 解析库/类,如 phpquery:
下载: http://code.google.com/ p/phpquery/
Don't use regex to parse html.
Use an html-parsing lib/class, as phpquery:
Download: http://code.google.com/p/phpquery/
从这里测试答案后 使用常规表达式从 html 代码中提取第一个图像源? 与此处提供的答案相比,我得到了更好的结果,并且损坏的链接图像更少。
为了获得更一致的结果,请使用此对象 http://simplehtmldom.sourceforge.net/ 它允许您操作 html 。
我发布的第一个链接的回复中提供了一个示例。
享受
After testing an answer from here Using regular expressions to extract the first image source from html codes? I got better results with less broken link images than the answer provided here.
For more consistent results use this object http://simplehtmldom.sourceforge.net/ which allows you to manipulate html.
An example is provided in the response in the first link I posted.
Enjoy
因此 $first_img->getAttribute("src") 将打印找到的第一个 src。
So the $first_img->getAttribute("src") will print the frist src found.