Php 简单 Dom 解析器无法将数据存储在数组中

Php Simple Dom Parser Unable to store data in array

我正在使用 Simple Html Dom 读取外部站点及其底页以获取某些汽车对象的一些信息,无论哪种方式,当回显我用简单的 html 页面找到的所有内容时加载时间大约为 10 秒,这是预期的,但是当我尝试将其保存在数组中时,页面卡住并且内存被占用。

$html = file_get_html($dealer);
$cars = $html->find('div[id=item_list]',0);
foreach($cars->find('a.item_link') as $carObj){
     $carlink = $carObj->href;
     $carhtml = file_get_html($carlink); 
     $cardata = $carhtml->find('div[id=view_body] div.span14',0);
     (string) $title = $carhtml->find('div[id=view_header] div h2',0);

如果我把这一行放在代码之后,它就会陷入无限循环

     //$carsarray[] = array('ctitle' => $title); 

但是回显同一个变量没有问题

     echo $title;

其余代码

     unset($images);
     $cardata->clear();

     unset($cardata);

}
$cars->clear();
unset($cars);

您应该已经能够像使用数组一样使用变量。它不是真正的数组,它是简单 Dom 解析器创建的 DOM 对象。我不确定为什么,但是当以某种方式循环时会导致无限循环问题。充分利用 $yourobject->find 继续向下遍历 DOM,$yourobject->plaintext 方法对我有用。

看起来在您的情况下 $carsarray[] = array('ctitle' => $title->plaintext); 可能会成功。希望这有帮助。