2

这是我尝试过的示例

<?php
 include 'spider/classes/simple_html_dom.php';
 $html = new simple_html_dom();
 $html->load("<html><body><h2>Heading 1</h2><h2>This heading 2</h2></p></p></body></html>");
 $e = $html->find("h2", 0);
 $key = array();
 if($e->plaintext != ""){
 foreach($html->find("h2", 0) as $e){
    //echo $e->plaintext;
    array_push($key, $e->plaintext);
  }
 } else {
     echo "error";
 }
 print_r($key);
 ?>

结果:
数组( [0] => [1] => [2] => [3] => [4] => [5] => 标题 1 这个标题 2

[6] => [7] => )

如何使用 array_push 创建数组?

4

2 回答 2

3

当您尝试此代码时会发生什么?我删除了第一个“查找”,我还在互联网上找到了一个示例,其中没有设置“查找”的第二个参数。

<?php
 include 'spider/classes/simple_html_dom.php';
 $html = new simple_html_dom();
 $html->load("<html><body><h2>Heading 1</h2><h2>This heading 2</h2></p></p></body></html>");
 $key = array();
 if(isset($html)){
 foreach($html->find("h2") as $e){
    //echo $e->plaintext;
    array_push($key, $e->plaintext);
  }
 } else {
     echo "error";
 }
 print_r($key);
 ?>

解释:

// Find all anchors, returns a array of element objects
$ret = $html->find('a');

// Find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', 0);
于 2012-03-28T05:45:33.280 回答
1

这是默认DOMDocument类的替代方法。

$html = new DOMDocument('1.0','utf-8');
$html->loadHTML("<html><body><h2>Heading 1</h2><h2>This heading 2</h2></p></p></body></html>");

$key = array();
$h2 = $html->getElementsByTagName('h2');

for ($i = 0; $i < $h2->length; $i++) {
    array_push($key, $h2->item($i)->nodeValue);
}
print_r($key);
于 2012-03-28T06:01:46.373 回答