编程语言
首页 > 编程语言> > PHP-SimpleHTMLDom:调用数组中的成员函数find()

PHP-SimpleHTMLDom:调用数组中的成员函数find()

作者:互联网

所以我想在大型html页面中循环通过特定的TD.我正在使用simplehtmldom来实现这一目标.问题是,如果不将所有步骤都放在foreach中,我将无法使其工作.

这是我的PHP

include('../inc/simple_html_dom.php');
$html = file_get_html("http://www.bjork-family.com/f43-london-stories");
// I just put the dom of pagebody into TEST
$test =  $html->find('#page-body');
foreach($test->find('img') as $element) 
{
    echo "<img src='" . $element->src . "'/>" . '<br>';
}

我得到这个错误

Fatal error: Call to a member function find() on array in /mywebsite.php on line 39

39行就是这个

foreach($test->find('img') as $element) 

我尝试了很多不同的方法,如果我真的很简单的话:

// Create DOM from URL or file
$html = file_get_html('http://www.bjork-family.com/f43-london-stories');
foreach($html->find('img') as $element) 
       echo $element->src . '<br>'; 

然后就可以了!

所以当我这样走时似乎正在工作

foreach($html->find('div') as $element) 
    {
        if($element->id == 'page-body')
        {
            echo $element->id;
            echo "EXIST <br>";
        }
        // echo "<img src='" . $element->src . "'/>" . '<br>';
    }

但是我不想只使用foreach来搜索我的html,还有另一种方法可以到达我的位置然后循环(我必须在表格中循环通过tr)

解决方法:

$test =  $html->find('#page-body');

现在$test是一个数组

$test =  $html->find('#page-body', 0);

现在$test是一个元素

foreach($test->find('img') as $element) 
{
    echo "<img src='" . $element->src . "'/>" . '<br>';
}

现在可以使用.您还可以简化:

foreach($test->find('#page-body img') as $element) 
{
    echo "<img src='" . $element->src . "'/>" . '<br>';
}

标签:simple-html-dom,php
来源: https://codeday.me/bug/20191025/1930949.html