php DOM内部标记(简单的html DOM)
我有这个html:php DOM内部标记(简单的html DOM),php,dom,tags,simple-html-dom,Php,Dom,Tags,Simple Html Dom,我有这个html: 不要使用两个->find()调用,请尝试 foreach($html->find('h2 > a') as $k) { 我自己没有使用过简单的DOM,所以我不确定选择器是否有效。如果没有,请尝试 foreach($html->find('a') as $k) { 并对结果进行排序。我没有使用PHP Simple HTML DOM Parser…但我认为错误可能是因为它返回一个字符串,而您正在对返回的字符串应用find函数,该字符串期望传递一个HTML对象
不要使用两个->find()
调用,请尝试
foreach($html->find('h2 > a') as $k) {
我自己没有使用过简单的DOM,所以我不确定选择器是否有效。如果没有,请尝试
foreach($html->find('a') as $k) {
并对结果进行排序。我没有使用PHP Simple HTML DOM Parser…但我认为错误可能是因为它返回一个字符串,而您正在对返回的字符串应用find函数,该字符串期望传递一个HTML对象
前面的解决方案是错误的,因为它只搜索字符串,而find函数搜索标记
一种可能的方法是我所评论的。。
删除第一个“h2”查找creteria,并申请所有需要的“a”
foreach($html->find('a') as $k) {
echo $k->href . '<br>';
}
谢谢,不幸的是错误(对非对象调用成员函数find())仍然存在exists@LucaZap等等,你使用的是简单的HTMLDOM,不是官方的。那没关系。只要试着删除第一个'h2'find creteria并申请所有的'a',即$html->find('a')…我认为它会起作用。。
foreach($html->find('a') as $k) {
echo $k->href . '<br>';
}
$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);