>  Q&A  >  본문

치명적인 오류: 포착할 수 없는 오류: C 스택 추적의 bool에서 멤버 함수 find() 호출 중: #0 {main}이 C의 16행에서 발생했습니다.

위에서 이 오류가 발생했으며 내 코드는 아래와 같습니다. 내 코드에 문제가 있나요? 도움을 주시면 감사하겠습니다. 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粉878510551P粉878510551319일 전418

모든 응답(1)나는 대답할 것이다

  • P粉237647645

    P粉2376476452023-12-29 23:12:44

    이런 일은 file_get_html() 返回一个布尔值(可能是 false 잘못된 URL 등의 오류로 인해 발생합니다.

    귀하의 코드에는 확인 실패가 없습니다.

    다음을 추가하는 것이 좋습니다:

    으아악

    회신하다
    0
  • 취소회신하다