PHP简单的HTML DOM解析器返回div作为数组
我使用PHP和简单的HTML DOM解析器试图抓住网站上的歌词。歌词与类歌词“歌词”一起保存在一个div中。这里是我用来试图抓住div并显示它的代码。目前它只在我的网页上返回“Array”。当我对数组进行jsonify时,我可以看到数组是空的。PHP简单的HTML DOM解析器返回div作为数组
<?php
include('simple_html_dom.php');
$data = file_get_contents("https://example.com/songlyrics");
$html = str_get_html($data);
$lyr = $html->find('div.lyrics');
echo $lyr;
?>
我知道简单的HTML DOM解析器被纳入正确,和我没有问题,显示完整的网页,当我回声$ HTML与一些小的修改代码,但是我似乎无法呼应只是这个div。我的代码有问题吗?为什么$ lyr返回一个数组?
你的代码没有问题。
为什么$ lyr返回一个数组?
这是因为一个类被认为是多次使用。如果你改为var_dump($lyr)
,你应该看到所有用这个类名找到的div元素。
您可以选择echo $lyr[0]
,也可以选择$html->find('div.lyrics',0)
来选择特定的div元素。
var_dump将来会很有用。我对PHP不太熟悉,这样可以节省一些时间。 Ghost留下的评论已经解决了我的问题,但既然这是一个答案,我会将其标记为正确。 –
这并不完全。除非使用第二个参数,否则'find'总是返回一个数组。这是一个令人困惑的事情,你必须习惯。另外,不要使用var_dump,如果你尝试,你会看到为什么不。 – pguardiario
@pguardiario感谢您的信息。我明白为什么不使用var_dump现在哈哈。 –
最有可能的是它的一个类的集合,指向第一个元素' - > find('div.lyrics,0')',介意第二个参数,然后'echo' – Ghost
@Ghost谢谢,这很有效。 –