如何获取 img 标签的 src 属性?

Posted

技术标签:

【中文标题】如何获取 img 标签的 src 属性?【英文标题】:How do I get the src attribute of img tags? 【发布时间】:2011-09-20 10:49:53 【问题描述】:

我通过外部 url 加载 DOM:

$dom = new DOMDocument;
$dom->loadhtmlFile( "external_url.html" );

$arrayOfSources = array();

foreach( $dom->getElementsByTagName( "img" ) as $image )
    $arrayOfSources[] = $image->item(0)->getAttribute("src");

这样我想将img标签的所有src属性存储在一个数组中,但我一直收到错误Fatal error: Call to undefined method DOMDocument::item()

我在这里缺少什么?如何从 html 中的 img 标签中提取所有 src 属性?

【问题讨论】:

应该是$arrayOfSources[] = $image->item[0]->getAttribute("src"); 注意方括号 @Kumary 我不认为这是正确的。 $image 是一个对象,而不是一个数组。 @alex,即使在那种情况下,对象中也没有名为item()的方法,AFAIK,他正在使用的对象是由其他对象组成的,他需要取消image(0) 【参考方案1】:

试试:

$arrayOfSources[] = $image->getAttribute("src");

【讨论】:

【参考方案2】:

在该循环中,您无需使用item(0) 访问元素。

该集合的迭代器允许您只对其执行 foreach() 并让它隐式访问 DOMNodeList 中的每个元素。

【讨论】:

正确!而且错误信息本身告诉对象没有名为item()的方法与该对象关联,明确不要使用它,我会简单地使用var_dump/print_r的史前方法来调试它。 第二点,我在这里有一个问题,我会在这里使用simplexml,那会不会出错? @Kumar:我更喜欢使用 DOMDocument 自己解析 HTML。 有什么优势吗?我使用 simplexml 完成了一个小型个人项目,发现它很快,但不是专家,所以想了解为什么首选 DOMDocument?【参考方案3】:

删除->item(0) 部分。


【讨论】:

这是我见过的最快(有效)的响应。谢谢!

以上是关于如何获取 img 标签的 src 属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取ImageView属性,例如src

php 如何取img属性值 src

js如何实现a标签获取下面img的src

如何php给img标签里的src加链接

Android如何获取当前ImageView中的src资源

关于Img标签绑定:src不显示图片