【问题标题】:Extract SRC of IMG with specific ID in PHP在PHP中提取具有特定ID的IMG的SRC
【发布时间】:2012-12-03 00:19:39
【问题描述】:

我知道这个问题已经发布了很多次,并且我阅读了之前的所有问题。我找不到方法来完成这项工作。

我需要提取具有特定 id 的 img 标签的 src url。输入格式为 -

<img class"image" id="prdImage" width="277" height="400" alt="someimage" src="http://url/image.jpg"/>

src 属性总是最后一个,class 总是第一个。此外,此代码将位于一个大型 HTML 文档中。我只给出了相关部分。

我到现在为止-

/<img class="image" id="prdImage".+?src="(.+?)".+?\/>/i

除了返回整个 img 标签而不是只返回 src 属性之外,这工作正常;

注意:我知道在这种情况下我应该使用 DOM 解析器。但是对于这个项目,我只能使用正则表达式。

【问题讨论】:

  • 想通了。我也在正则表达式中匹配 id 和 src 属性之间的字符串。这样,我在结果数组的第二个元素而不是第一个元素中得到了 src url。
  • 如果您已经找到答案,请发布您的答案并接受它

标签: php regex


【解决方案1】:

试试这个

(?<=<img.*?src=")(.*?)(?="/>)

那个正则表达式会返回

http://url/image.jpg

来自您的输入字符串

<img class"image" id="prdImage" width="277" height="400" alt="someimage" src="http://url/image.jpg"/>

【讨论】:

  • 这将匹配具有任何 id/class 的图像标签。我只想匹配特定的 id/class。为尝试点赞!
  • 您不能使用正则表达式将字符串的几个部分作为一个部分。为此,请获取您想要的每个部分,然后连接它们。
【解决方案2】:

我自己想出了答案。这是表达式

/<img class="image" id="prdImage"(.*?)src="(.*?)"\/>/i

这将返回一个数组,其中 url 在第二个位置。

我接受这个答案,因为我自己想通了。如果其他人有更好的解决方案,我会接受他们的回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多