2012-06-22 3 views
2

Хотя включая простую библиотеку HTML DOM, я получаю предупреждения:Simple HTML DOM Библиотека

Внимание: file_get_contents() [function.file-получить содержание]: php_network_getaddresses: getaddrinfo не удалось: Нет такого хоста не известно. в C: \ xampp \ htdocs \ simple_html_dom.php в строке 70

Предупреждение: file_get_contents (http://www.google.com/) [function.file-get-contents]: не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: никакой хозяин не известен. в C: \ XAMPP \ HTDOCS \ simple_html_dom.php на линии 70

Строка 70 в simple_html_dom.php файл (скачанный с http://sourceforge.net/projects/simplehtmldom/files/latest/download) является

$contents = file_get_contents($url, $use_include_path, $context, $offset); 

Также 1 ошибка:

Фатальная ошибка: Обращение к функции члена находке() на не-объект в C: \ XAMPP \ HTDOCS \ domdoc2.php на линии 15

где строка 15 кода (ниже)

foreach($html->find('img') as $element) 

На веб-странице я имел в виду в моем коде ниже это google.com код следующим образом:

 <?php 

include('simple_html_dom.php'); 
$html = new simple_html_dom(); 
$html = file_get_html('http://www.google.com/'); 
// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 

// Find all links 
foreach($html->find('a') as $element) 
     echo $element->href . '<br>'; 
?> 

Что я делаю не так ??

+0

Это не проблема библиотеки, PHP просто не может разрешить хост ip-адресу –

+0

Является ли файл actua там? –

+0

@Baszz В каком файле вы видите? Файл DOM есть и включен также – saur

ответ

1

Это связано с тем, что ваш хост не смог разрешить DNS, это происходит, когда simplehtmldom использует file_get_contents вместо curl. PHP Simple HTML DOM Parser - отличный класс PHP для PHP, но он медленный, поскольку он использует file_get_contents (который отключен почти для всех конфигураций) вместо cURL (в 4-5 раз быстрее и с множеством опций почти каждый сервер имеет Это).

только file_get_contents заменен, так что вы смело можете перезаписать предыдущую версию и все будет работать, как и раньше, только быстрее

Ссылка на исходный код: http://webarto.com/static/download/simple_html_dom.rar

//output should be 

/intl/en_ALL/images/srpr/logo1w.png 
http://www.google.com/webhp?hl=en&tab=ww 
http://www.google.com/imghp?hl=en&tab=wi 
http://maps.google.com/maps?hl=en&tab=wl 
https://play.google.com/?hl=en&tab=w8 
http://www.youtube.com/?tab=w1 
http://news.google.com/nwshp?hl=en&tab=wn 
https://mail.google.com/mail/?tab=wm 
https://docs.google.com/?tab=wo 
http://www.google.com/intl/en/options/ 
https://www.google.com/calendar?tab=wc 
http://translate.google.com/?hl=en&tab=wT 
http://www.google.com/mobile/?tab=wD 
http://books.google.com/bkshp?hl=en&tab=wp 
https://www.google.com/offers/home?utm_source=xsell&utm_medium=products&utm_campaign=sandbar&tab=wG#!details 
https://wallet.google.com/manage/?tab=wa 
http://www.google.com/shopping?hl=en&tab=wf 
http://www.blogger.com/?tab=wj 
http://www.google.com/reader/?hl=en&tab=wy 
http://www.google.com/finance?tab=we 
http://picasaweb.google.com/home?hl=en&tab=wq 
http://video.google.com/?hl=en&tab=wv 
http://www.google.com/intl/en/options/ 
https://accounts.google.com/ServiceLogin?hl=en&continue=http://www.google.com/ 
http://www.google.com/preferences?hl=en 
/preferences?hl=en 
/url?sa=p&pref=ig&pval=3&q=http://www.google.com/ig%3Fhl%3Den%26source%3Diglk&usg=AFQjCNFA18XPfgb7dKnXfKz7x7g1GDH1tg 
http://www.google.com/history/optout?hl=en 
/advanced_search?hl=en 
/language_tools?hl=en 
/intl/en/ads/ 
/services/ 
https://plus.google.com/116899029375914044550 
/intl/en/about.html 
/intl/en/policies/ 

Однако, если вы новичок в HTML синтаксический анализ на PHP Пожалуйста, рассмотрите следующие данные: How do you parse and process HTML/XML in PHP?

+0

Спасибо за это .. хорошо это может показаться слишком дилетантским, но не могли бы вы рассказать, какой должен быть выход. Я получаю пустой экран. – saur

+0

Он должен распечатать все ссылки (a-> href) и изображения (img -> src), как вы просили в скрипте. Я пробовал тот же скрипт, и я обновил ans с выходом. –

+0

Спасибо за это! – saur

1

Это никак не связано с simple_html_dom. У вашего сервера нет доступа в Интернет, и он не может разрешить google.com. Проверьте настройки DNS и, возможно, брандмауэр.

+0

У сервера есть доступ в Интернет, все еще получая это сообщение об ошибке .. Любая подсказка? – saur

+0

Это связано с тем, что ваш хост не смог разрешить DNS, это происходит, когда simplehtmldom использует file_get_contents вместо curl. –