Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Не парсит simple html dom

#1 bongbong

bongbong
  • Пользователь
  • 2 сообщений
  • Репутация: 0
0

Отправлено 25 Ноябрь 2015 - 17:15

Всем привет! Прошу помощи, использую simple_html_dom.php:

<?
include "simple_html_dom.php";



$dnsdata = fopen("mts.txt", 'r') or die("не удалось открыть файл dns.txt");
while(!feof($dnsdata))
{
$url = fgets($dnsdata);
if ($url == '-')
{
$nm[0] = '-';
$ret[0] = '-';
}
else
{
$dns = file_get_html($url);
$ret = $dns->find('.price_g');
$nm = $dns->find('.price-item-title');
$csvdns = $csvdns.';'.$ret[0].';'.$nm[0];
echo $csvdns;

}


}
fclose($dnsdata);


?>

Появляется ошибка: 
Warning: file_get_contents(http://shop.mts.ru/smartfony/samsung...00f-white.html ): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/srv109190/pr/simple_html_dom.php on line 76

Fatal error: Call to a member function find() on a non-object in /home/srv109190/pr/index.php on line 18

Файл mts.txt вида:
http://shop.mts.ru/s....00f-white.html
http://shop.mts.ru/s....00f-white.html
http://shop.mts.ru/s....00f-white.html
http://shop.mts.ru/s....00f-white.html

Если же вставляю урл без цикла(не из файла, а напрямую):

$dns = file_get_html('http://shop.mts.ru/smartfony/samsung/smartfon-galaxy-j1-lte-duos-sm-j100f-white.html');
$ret = $dns->find('.price_g');
$nm = $dns->find('.price-item-title');
$csvdns = $csvdns.';'.$ret[0].';'.$nm[0];
echo $csvdns;

То все работает. Уже голову сломал, прошу помочь разобраться с проблемой! Заранее спасибо!


 

 

Сообщение отредактировал BLIK: 25 Ноябрь 2015 - 18:15
убрал форматирование

  • 0

#2 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 27 Ноябрь 2015 - 18:48

В цикл добавь вывод значения ссылки и посмотри корректность. Судя по ошибке, метод не может открыть указанный файл.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.



Оформление форума – IPBSkins.ru