2013-05-03 5 views
1

Привет У меня есть вопрос в простом коде HTML DOM он показывает эту ошибку: -PHP - не удалось открыть поток: нет такого хозяина не известно

file_get_contents (http://www.arakne-links.com) [function.file-получить содержимое ]: не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: такой хост не известен. в D: \ XAMPP \ HTDOCS \ скрап \ simple_html_dom.php на линии 75

, потому что этот URL http://www.arakne-links.c не работает теперь я хочу

знать, есть ли способ, чтобы пропустить URL, который не является работает ..

вот код, который я использую

ini_set('display_errors', 'on'); 
include_once('../../simple_html_dom.php'); 

// create HTML DOM 

$htmls = file_get_html('http://info.vilesilencer.com/top');  
foreach($htmls->find('a[rel="nofollow"]') as $e): 
$test = $e->href; 
$url = array($test); 
$html = array(); 
foreach($url as $key=>$value) { 

// get html plain-text for webpage & assign to html array. 

$html = file_get_html(trim($value)); 

// echo html plain text: 
echo $html->find('title', 0)->innertext; 

}  
endforeach; 

Пожалуйста, помогите мне решить эту проблему.

Thankyou

+0

где вы используете функцию 'file_get_content'. – 2013-05-03 11:57:00

+0

i я исправляю его и получаю в следующем URL-адресе, но теперь появляется новая ошибка, я заменяю этот код $ html = file_get_html (trim ($ value)); // echo html plain text: echo $ html-> find ('title', 0) -> innertext; с $ html = @file_get_html (trim ($ value)); if ($ html) { echo $ html-> find ('title', 0) -> innertext; } else { // Ошибка \t echo 'not working'; }, но теперь он показывает некоторое уведомление – Corlax

+0

hello MIss poo Я использую file_get_content здесь echo $ html-> find ('title', 0) -> innertext; его функция simple_html_dom.php – Corlax

ответ

4

Как о проверке URL перед разбором?

ini_set('display_errors', 'on'); 
include_once('simple_html_dom.php'); 

function urlOk($url) { 
    $headers = @get_headers($url); 
    if($headers[0] == 'HTTP/1.1 200 OK') return true; 
    else return false; 
} 

// create HTML DOM 

$htmls = file_get_html('http://info.vilesilencer.com/top');  
foreach($htmls->find('a[rel="nofollow"]') as $e): 
    $test = $e->href; 
    $url = array($test); 
    $html = array(); 
    foreach($url as $key=>$value) { 
     // get html plain-text for webpage & assign to html array. 
     if (urlOk(trim($value))) { 
      $html = file_get_html(trim($value)); 
      echo $html->find('title', 0)->innertext; 
      echo "<br />"; 
     } else { 
     echo 'Error: URL '.$value.' doesn\'t exist.<br />'; 
     } 
}  
endforeach; 
?> 
+0

спасибо, это именно то, что я ищу, но мне нужна небольшая помощь more petra, я получаю эту ошибку. Примечание. Пытается получить свойство не-объекта в D: \ xampp \ htdocs \ scrap \ example \ scraping \ example_scraping_imdb.php on line 22 ..... его пришло, когда тег заголовка не найден в строке 22. есть ли способ работать с линией 22, только если найден тег заголовка – Corlax

+0

Вам нужна часть «else», когда заголовок не найден? В противном случае просто отключите уведомления с помощью error_reporting (E_ALL^​​E_NOTICE); – Petra

Смежные вопросы