Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php DOM内部标记(简单的html DOM)_Php_Dom_Tags_Simple Html Dom - Fatal编程技术网

php DOM内部标记(简单的html DOM)

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对象

我有这个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);