如何获取 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 属性?的主要内容,如果未能解决你的问题,请参考以下文章