【问题标题】:PHP get image srcPHP获取图片src
【发布时间】:2010-08-18 17:49:09
【问题描述】:
$variable = '<img src="http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG" height="32" width="32" alt=""/>';

如何获取这张图片的src?

喜欢:

$src = 'http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&amp;d=identicon&amp;r=PG';

谢谢。

【问题讨论】:

  • $variable 中是否还有其他内容,例如其他 HTML 还是只是字符串?

标签: php src


【解决方案1】:

使用正则表达式

preg_match( '@src="([^"]+)"@' , $variable , $match );

而 src 将在 $match 中,参见 print_r( $match )。 但这仅适用于这种情况,如果您想要通用解决方案(例如“反对”等),请使用 html/DOM 解析器。

【讨论】:

  • 实际上,我认为 Regex 是合理的并且比完整的 HTML 解析器更适合获得所需结果的罕见情况之一。
【解决方案2】:

您可以为此使用 html 解析器。看到这个:http://simplehtmldom.sourceforge.net/(我希望这适用于节点,而不仅仅是整个页面)。

【讨论】:

  • 实际使用 DOM 而非字符串解析的建议第三方替代方案:phpQueryZend_DomQueryPathFluentDom。但是,对于 OP 的 UseCase,HTML/DOM 解析器可能是多余的。
【解决方案3】:

使用HTML DOM。下载并在您的脚本中包含 simple_html_dom.php 文件。

然后像这样获取图片 URL:

$html = str_get_html('<img src="http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG" height="32" width="32" alt=""/>');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2014-04-15
    • 2014-07-10
    • 2019-05-18
    • 2015-07-18
    相关资源
    最近更新 更多