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);
可能会成功。希望这有帮助。
我正在使用 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);
可能会成功。希望这有帮助。