2017-08-25 13 views
0

だから私は、trought固有のTDを大規模なHTMLページにループしたい。私はそれを達成するためにsimplethtmldomを使用しています。問題は、私はそれがwhitout foreachのすべてのステップを入れて動作させることができないということです。ここでsimplehtmldom配列のメンバー関数find()を呼び出す

は私のPHPは、私が

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

ライン39は、私はそれを維持する場合、私は、異なる多くのことを試してみました。この1

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

でこのエラーが出る

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>'; 
} 

ですそのような本当に簡単な:

// 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に検索したいいけませんループ今

答えて

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

$testである配列(私はテーブルのループトラフTRに有する)

$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>'; 
} 
関連する問題