2014-07-10 55 views
3

我的腳本嘗試從文件中逐行讀取每個站點,但是當嘗試解析不存在的站點時,腳本停止並給我出現以下錯誤:當網站不存在時,出現簡單的HTML Dom錯誤

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\simple_html_dom.php on line 76 

Warning: file_get_contents(http://www.thissitedoesntexist.com): failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\simple_html_dom.php on line 76 

Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\test2.php on line 11 

我該如何解決?我怎樣才能讓它運行,即使一個網站不存在...從我的文件(這意味着讀取另一個網站,然後閱讀它)閱讀一個新的行也當scrip停止時,像404,403接收錯誤等

+0

記住你的代碼的外觀嗎? – Steven

+0

添加於我的帖子 – user3680499

+0

這是實際的代碼?我看不到'file_get_contents()'?... – War10ck

回答

1

根據文檔,file_get_contents()返回FALSE失敗。 因此,在嘗試解析返回的內容之前,請檢查它返回的內容以確保網站存在。如果它不存在,遍歷到文件中的下一行,並保持持續的過程:

if($file = file_get_contents("http://www.thissitedoesntexist.com")) { 
    // Parse file here 
    // Then continue reading the file by 
    // starting at the next line. 
    continue; 
} 

參考:

file_get_contents()

1

我會做到這一點,以檢查錯誤代碼---

foreach ($sites as $site) { 

    $ch = curl_init('http://'.$site); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    // Execute 
    curl_exec($ch); 

    // Check if any error occurred 
    $info = curl_getinfo($ch); 

    if($info['http_code'] != 200) { 
     continue; 
    } 
    //rest of loop, here -- 

} 

你甚至可以做一些不同的取決於你得到一個case-swi的錯誤代碼tch -

相關問題