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 :: Помогите найти ошибку

 PHP.SU

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


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

> Без описания
inkor
Отправлено: 29 Марта, 2010 - 20:53:09
Post Id


Новичок


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


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




Пишу парсер одного сайта.

скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $www = file_get_contents('http://www.kolesa.ru/article/2010/03/29/formula-1_vyehali_vse_pod_dozhd'); //скачивание страницы
  4.  
  5. // достаем заголовок
  6. preg_match_all("#(?<=<title>)(.+?)(?=::)#is" , $www , $title);
  7. unset ($title['0']);
  8. $title2 = $title['1']['0'];
  9. $title2 = iconv("UTF-8", "windows-1251", "$title2");
  10.  
  11. // достаем текст и удаляем лишнее
  12.  
  13. $text = strstr($www,'<div class="text" style="float: right;">');
  14. $text = explode ("</div>", $text);
  15. unset ($www);
  16. $text = iconv("UTF-8", "windows-1251", "$text[0]");
  17. $text = str_replace ('<div class="text" style="float: right;">', "", $text);
  18. $text = preg_replace("/<img(.)*\">/Uism", '', $text);
  19. $text = str_replace ('<p class="article-images">', "", $text);
  20. $text = preg_replace("/(?<=<p )(.)*(?=>)/Uism", '', $text);
  21. $text = str_replace ('<p>&nbsp;</p>', "", $text);
  22. $text = str_replace ('<p >', "<p>", $text);
  23. $text = str_replace ('<p></p>', "", $text);
  24. $text = preg_replace("/(?<=<\/p>)(\s)*(?=<\/p>)/Uism", '', $text);
  25. $text = str_replace ('</p></p>', "", $text);
  26. $text = str_replace ('<p>', "<p align = 'justify'>", $text);
  27. $text = trim($text);
  28.  
  29. echo $text;
  30.  
  31.  


выводит статью не полностью а урывками (начало и конец), но если закомментировать (//) строки с 17 по 27, то скрипт выводит статью в исходном виде. Далее по одному убираем комментарии с перезагрузкой страницы - текст форматируется как надо. с чем это связано?
 
 Top
Singularis
Отправлено: 29 Марта, 2010 - 23:48:40
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Май 2008  


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




Спойлер (Отобразить)
 
 Top
JustUserR
Отправлено: 30 Марта, 2010 - 13:04:23
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




inkor пишет:
$www = file_get_contents('http://www.kolesa.ru/article/2010/03/29/formula-1_vyehali_vse_pod_dozhd'); //скачивание страницы
Это самый ненадежный способ получить страницу через url-open-оболочки для файловых функций - ведь не не можете не передать свои заголовки ни сохранять cookie и соответственно авторизоваться ни управлять кодировкой ни уж тем более работаь со сложными типами документов - лучше используйте CURL или sockets


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB