我有这个 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()
我有这个 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()
而不是使用两个->find()
电话,请尝试
foreach($html->find('h2 > a') as $k) {
我自己没有使用过 Simple DOM,所以我不确定选择器是否有效。如果没有,请尝试
foreach($html->find('a') as $k) {
并对结果进行排序。
我没有使用 PHP Simple HTML DOM Parser...但我认为错误可能是因为它返回一个字符串,并且您正在对返回的字符串应用 find 函数,该字符串期望传递一个 html 对象...
以前的解决方案是错误的,因为它只是搜索了一个字符串,而 find 函数搜索了一个标签。
一种可能的方法是我评论过的.. 删除第一个“h2”查找条件并申请所有“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);