Добрый день, уважаемые Гуру программирования на php.
Я новичок в этом деле, но стараюсь освоить данный язык программирования.
Два дня пытаюсь сделать простенький парсер некоторого контента с некоторого сайта. Суть парсера - есть файл с адресами страниц сайта, в обычном текстовом файле. Каждая страница - с новой строки. Парсер должен взять каждую страницу, найти в html коде страницы тег ( в моем случае это тег H1) и сохранить то что между этим тегом в другой текстовый файл.
В настойщий момент написал код такого вида:
PHP:
скопировать код в буфер обмена
<? include 'simple_html_dom.php'; $k[1] = 'http://mail.ru'; $k[2] = 'http://iphones.ru'; $k[3] = 'http://mail.com'; for ($i=1; $i<=3; $i++) { echo $i; echo $k[$i]; echo file_get_html($k[$i])->find('h1',0); } ?>
и на выходе я получаю список заголовков (под тегом H1) с каждого сайта. Принцип понятен, теперь пытаюсь чтобы скрипт брал данные из текстового файла, для этого дописываю код чтения данных из файла в массив:
PHP:
скопировать код в буфер обмена
$url = fopen("url.txt", "r"); //открываем файл for ($y=1; $y<=2; $y++) { //запускаем цикл ( далее сделаю через while) $k[$y] = fgets($url); //производим запись в массив $k } fclose($url); //закрываю текстовый файл
данный код совершенно спокойно выводит данные, которые записаны в тектовом файле и в последствии считанные в массив $k.
Далее - объединяю два кода и получаю :
PHP:
скопировать код в буфер обмена
include 'simple_html_dom.php'; $url = fopen("url.txt", "r"); // for ($y=1; $y<=2; $y++) { } for ($i=1; $i<=2; $i++) { echo $i; //выводу номер по порядку echo $k[$i]; //вывожу ссылку из текстового файла echo file_get_html($k[$i])->find('h1',0); //вывожу данные тега H1 по ссылке }
после этого на выходе я получаю только вывод на экран самой первой строчки из текстового файла. На этом я понимаю, что скрипт дальше не обрабатывает данные. Но если в текстовом файле оставить только одну строчку, то скрипт начинает правильно обрабатывать данные, выводит нужный текст между тегом H1. Понимаю, что скорее всего дело в лишних переносах, т.к. именно после добавление новой строки в текстовый файл появляется ошибка.
Буду благодарен за ответ. Заранее прошу прощение за допущенные ошибки в коде.
|