从 PHP 文本中提取图像源 - 需要 preg_match_all
我有一个小问题,因为我的 preg_match_all 运行不正常。
我想要做的是从wordpress中提取post_content中所有图像的src参数,它是一个字符串 - 不是完整的html文档/DOM(因此不能使用文档解析器功能)
我是目前使用下面的代码,不幸的是太不整洁了,仅适用于 1 个图像 src,我想要该字符串中的所有图像源,
preg_match_all( '/src="([^"]*)"/', $search->post_content, $matches);
if ( isset( $matches ) )
{
foreach ($matches as $match)
{
if(strpos($match[0], "src")!==false)
{
$res = explode("\"", $match[0]);
echo $res[1];
}
}
}
有人可以在这里帮忙吗...
I have a little issue as my preg_match_all is not running properly.
what I want to do is extract the src parameter of all the images in the post_content from the wordpress which is a string - not a complete html document/DOM (thus cannot use a document parser function)
I am currently using the below code which is unfortunately too untidy and works for only 1 image src, where I want all image sources from that string
preg_match_all( '/src="([^"]*)"/', $search->post_content, $matches);
if ( isset( $matches ) )
{
foreach ($matches as $match)
{
if(strpos($match[0], "src")!==false)
{
$res = explode("\"", $match[0]);
echo $res[1];
}
}
}
can someone please help here...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用正则表达式解析 HTML 文档很容易出错。就像您的情况一样,不仅
IMG
元素具有 < code>SRC 属性(事实上,它根本不需要是 HTML 属性)。除此之外,属性值也可能没有用双引号引起来。最好使用 HTML DOM 解析器,例如 PHP 的 DOMDocument 及其方法:
Using regular expressions to parse an HTML document can be very error prone. Like in your case where not only
IMG
elements have anSRC
attribute (in fact, that doesn’t even need to be an HTML attribute at all). Besides that, it also might be possible that the attribute value is not enclosed in double quote.Better use a HTML DOM parser like PHP’s DOMDocument and its methods:
您可以使用带有 HTML 字符串的 DOM 解析器,不需要有完整的 HTML 文档。 http://simplehtmldom.sourceforge.net/
You can use a DOM parser with HTML strings, it is not necessary to have a complete HTML document. http://simplehtmldom.sourceforge.net/