Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по file_get_contents

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как получить несколько страниц?
netclan
Отправлено: 15 Января, 2013 - 06:07:30
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Здравствуйте, уважаемые форумчане!
Решил сделать sitemap, для получения контента одной страницы, можно использовать часть кода:
PHP:
скопировать код в буфер обмена
  1.  
  2. $content = file_get_contents("http://адрес_сайта/ррр.html");
  3.  

а вот вопрос заключается в том, что нужно получить все страницы и их обработать, а не одну, так вот как зациклить и получить ссылки с домена http://адрес_сайта? Не понял


-----
O_o
 
 Top
avtor.fox
Отправлено: 15 Января, 2013 - 07:26:04
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Парсите страницу на url. Сохраняете массив ссылок. Циклом проходите по полученным ссылкам. В том же цикле парсите страницы на ссылки, пишете в массив ссылок недостающие (найденные на других страницах). Имеете массив ссылок, обрабатываете.
 
 Top
netclan
Отправлено: 15 Января, 2013 - 07:38:55
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




[quote=avtor.fox][/quote]
Не подскажите наглядно по этой части "Циклом проходите по полученным ссылкам.", не совсем пойму как это?


-----
O_o
 
 Top
avtor.fox
Отправлено: 15 Января, 2013 - 07:50:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




netclan
А теперь уточните для себя. Вам нужно получить уникальные ссылки ресурса или контент по уникальным ссылкам ресурса?
 
 Top
netclan
Отправлено: 15 Января, 2013 - 07:54:56
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




avtor.fox пишет:
netclan
А теперь уточните для себя. Вам нужно получить уникальные ссылки ресурса или контент по уникальным ссылкам ресурса?

Уникальные ссылки, чтобы потом записать их все в файл вида:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <url>
  2.       <loc>http://www.example.com/</loc>
  3.       <lastmod>2005-01-01</lastmod>
  4.       <changefreq>monthly</changefreq>
  5.       <priority>0.8</priority>
  6.    </url>


-----
O_o
 
 Top
avtor.fox
Отправлено: 15 Января, 2013 - 08:16:44
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




netclan
Ещё раз -
1. Открываете первую страницу (вручную забитую);
2. Парсите её на ссылки;
3. Пишете полученные ссылки в массив;
3.0. Пробегаемся по полученным ссылкам;
3.1. Парсите полученные страницы по ссылкам;
3.2. Извлекаете ссылки из страниц;
3.3. Проверяете ссылки на уникальность. Если Вы уже прошлись по всем страницам и новых ссылок больше нет, выходите из цикла.

Если Вам нужен готовый скрипт, то Вам не в эту тему и скорее всего не бесплатно.
 
 Top
netclan
Отправлено: 15 Января, 2013 - 08:27:04
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




avtor.fox пишет:
netclan
3.0. Пробегаемся по полученным ссылкам;

Может я неясно выразился. Я могу распарсить одну страницу и получить всю необходимую информацию, но не пойму как после получения массива с ссылками, пробежаться по ссылкам и получить с них информацию. Иными словами как зациклить получение контента по полученным ссылкам в массиве?


-----
O_o
 
 Top
avtor.fox
Отправлено: 15 Января, 2013 - 08:48:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




netclan, действительно беда.

PHP:
скопировать код в буфер обмена
  1. function recursion($sl){
  2.         static $msTime;
  3.         if(is_null($msTime)){ $msTime = microtime(1); }
  4.         if($sl == 0){
  5.                 echo 'Достиг нуля за '.round(microtime(1) - $msTime, 3);
  6.         }
  7.         else{
  8.                 recursion($sl - 1);
  9.         }
  10. }
  11. recursion(50000);

Как пример.
 
 Top
DelphinPRO
Отправлено: 15 Января, 2013 - 10:40:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




avtor.fox пишет:
3.3. Проверяете ссылки на уникальность.

а также не забываем проверять внешняя это ссылка или внутренняя. Внешние - пропускаем.
(Добавление)
писал однажды простой парсер сайта.

парсит страницы и складывает содержимое в папку.
на вход рекурсивной функции подается стартовый адрес, и он обходит все связанные по ссылкам.
Оставлю вам как пример.
Если убрать функциональность по сохранению контента и вместо этого сохранять найденные ссылки в массив, получится примерно то, что вам надо.
Спойлер (Отобразить)


тухлыми помидорами не кидаться - скрипт писаля для разовой задачи, с которой он прекрасно справился. Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB