在此腳本中,我加載了一個包含80個項目的URL。在simple_html_dom迭代每個項目'tr'的幫助下,總數爲80.PHP foreach循環無法正常工作 - 在半數迭代後死亡
但是foreach循環僅迭代以下代碼中的42個項目。
<?php
include_once "simple_html_dom.php";
$job_links=array();
$main_url = "http://xyz.com/rescnt=80";
$html = new simple_html_dom();
$html->load_file($main_url);
$fun = $html->find('div[class=dontent_wrap]',0)->find('table',0);
$i=0;
echo count($fun->find('tr'));
foreach($fun->find('tr') as $tr){
echo ++$i;
$td = $tr->find('td',1);
$a = $td->find('a',0);
$link = $a->href;
$id = $a->id;
$id = trim(preg_replace('/link/','',$id));
$my_link ="http://xyz.com/details/".$id.".html";
if(strpos($link, $my_link)!==false){
$job_links[] =trim($my_link);
}
}
echo 'count:'.count($job_links);
print_r($job_links);
?>
在從它完成迭代循環除去幾行81
foreach($fun->find('tr') as $tr){
echo ++$i;
$td = $tr->find('td',1);
}
我不知道發生了什麼錯誤。它已經耗盡了我的一天。
這不是超時問題,因爲我用set_time_limit(0);
不起作用。
如果redured到40,則循環迭代21再次同樣的問題項目「TR」的數量(它也告訴沒有超時的問題)
所有的項目都是相同的,有相同的類型和相同元素的數量。
是否引發錯誤?這可以解釋爲什麼它只能通過一半。 – Pudge601
@ Pudge601不,它不會拋出任何錯誤。它簡單地停止工作進一步執行 –
致命錯誤:調用第14行中的非對象中的成員函數find()。第14行:$ a = $ td-> find('a',0) ;也許這可能有幫助? – sinisake