我有这个HTML:
<h2><a href="http://.... > title</h2>
如何获得字符串“href”?
我尝试过:
include('simple_html_dom.php');
$html = file_get_html('http://...');
foreach($html->find('h2')->find('a') as $k) {
echo $k->href . '<br>';
}
错误:在非对象上调用成员函数find()
答案 0 :(得分:2)
不要使用两个->find()
来电,请尝试
foreach($html->find('h2 > a') as $k) {
我自己没有使用过Simple DOM,所以我不确定选择器是否有效。如果没有,请尝试
foreach($html->find('a') as $k) {
并对结果进行排序。
答案 1 :(得分:0)
我没有使用过PHP Simple HTML DOM Parser ...但是我认为错误可能是因为它返回一个字符串并且你在返回的字符串上应用了find函数,它希望传递一个html对象。
之前的解决方案是错误的bcz它只搜索字符串,而find函数搜索标签..
一种可能的方式是我评论过的...... 删除第一个'h2'找到creteria并申请所有'a'
foreach($html->find('a') as $k) {
echo $k->href . '<br>';
}
其他可能的解决方案是使用php inbuild file_get_contents并定期搜索 表达式...我已经为你做了......
$html = file_get_contents('new.php');
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$uql=array();
preg_match($reg_exUrl, $html, $url);
print_r($url);