我在上面收到此錯誤,我的程式碼如下。我的程式碼有什麼問題嗎?任何幫助都是感激的。我不確定它是否與我用來運行它的軟體 XAMPP Apache 有關。我目前正在嘗試從網頁中檢索包含 Excel 中產品程式碼的資訊。我設法運行了大約 900 多個產品代碼,但突然收到上面的錯誤。
<?php // example of how to use basic selector to retrieve HTML contents include('simple_html_dom.php'); $file = fopen("Book1.csv","r"); $file2 = fopen("test.csv","w"); $links = []; while (($result = fgetcsv($file)) !== false) { $link = "https://mall/Product/".$result[0]; $links[] = $link; $row_data = []; $page = file_get_html($link); $product_details = $page->find('.ProductDetailsTable tr'); //line 16 if(count($product_details)==0) { $row_data[] = $result[0]; $row_data[] = 'not found'; fputcsv($file2, $row_data); continue; } //second method $article_number = ''; $product_description = ''; $product_family = ''; $product_lifecycle = ''; $plm_date = ''; $notes = ''; $EAN = ''; $UPC = ''; $country_of_origin = ''; foreach($product_details as $table_row) { if(count($table_row->find('td'))==1){ //ignore } elseif(count($table_row->find('td'))==2) { $key = $table_row->find('td')[0]->plaintext; $value = $table_row->find('td')[1]->plaintext; if($key=="EAN") { $EAN = $value; } elseif($key=='Article Number (Market Facing Number)') { $article_number = $value; } elseif ($key=='Product Description') { $product_description = $value; } elseif ($key=='Product family') { $product_family = $value; }elseif ($key=='Product Lifecycle (PLM)') { $product_lifecycle = $value; }elseif ($key=='PLM Effective Date') { $plm_date = $value; }elseif ($key=='Notes') { $notes = $value; }elseif ($key=='UPC') { $UPC = $value; }elseif ($key=='Country of origin') { $country_of_origin = $value; } } } $row_data[] = trim($article_number); $row_data[] = trim($product_description); $row_data[] = trim($product_family); $row_data[] = trim($product_lifecycle); $row_data[] = trim($plm_date); $row_data[] = trim($notes); $row_data[] = trim($EAN); $row_data[] = trim($UPC); $row_data[] = trim($country_of_origin); fputcsv($file2, $row_data); } fclose($file); fclose($file2); echo 'done'; ?>
P粉2376476452023-12-29 23:12:44
發生這種情況是因為 file_get_html()
傳回一個布林值(可能是 false
由於一些錯誤,例如無效的 url)。
您的程式碼沒有檢查失敗。
我建議您添加以下內容:
if (!$page) { // Do some error handling, logging continue; // skip to next iteration on your loop. }