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]   

> Описание: Необходимо выдрать текст из html файла
novik
Отправлено: 15 Ноября, 2009 - 16:21:41
Post Id


Новичок


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


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




Что нужно получить:
Подключится к любой странице получить текст.К примеру получить статью, естественно без теста содержащегося в навигации сайта, рекламе и т.п. . Может есть возможность выдирать текст из определённых html тегов????

Что есть :
1)
Непосредственно запись всей страницы:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $site = ($_REQUEST['site']);  // сюда получаем ссылку на страницу из которой  
  4. echo  "$site \n";                   //  текст надо выдрать
  5. list($nach,$res,$rel,$wet,$for,$red,$kon) = explode("/", $site);  // получаем назв. html    
  6. echo "\n $kon";                                                                       файла
  7. $fh = fopen($kon,'w') or die($php_errormsg);
  8. $c = curl_init($site);
  9. curl_setopt($c,CURLOPT_FILE,$fh);                //записываем html файл
  10.  
  11. ?>
  12.  
  13. <form action="delteg.php" method="post" name="site1">
  14. <input  type="text"  name="site1" value="<?PHP echo "$kon";?>">
  15. <input name="text" type="submit" value="site2">
  16. </form>
  17.  
  18.  
  19.  



2) Чистим от html и php тегов
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. $filename = '1.txt';
  5. $site = ($_REQUEST['site1']);
  6.  
  7. $fh = fopen($site,'r') or die($php_errormsg);
  8. while ($s = fgetss($fh,1022976)) {  
  9. if (is_writable($filename)) {
  10.  
  11.    
  12.     if (!$handle = fopen($filename, 'a')) {
  13.          echo "Не могу открыть файл ($filename)";
  14.          exit;
  15.     }
  16.     if (fwrite($handle, $s) === FALSE) {
  17.         echo "Не могу произвести запись в файл ($filename)";
  18.         exit;
  19.     }
  20.    
  21.     echo "Ура! Записали  в файл ($filename)";
  22.    
  23.     fclose($handle);
  24.  
  25. } else {
  26.     echo "Файл $filename недоступен для записи";
  27. }
  28.  
  29. }
  30. fclose($fh) or die($php_errormsg);
  31. ?>
  32.  
  33. <center><br><br><img src="nazad.gif" border="0" style="cursor:pointer" onClick="javascript:window.location='pr.html';"></center>
  34.  
  35.  


Как я пытался:
Ну собственно так как написано выше, ну и пробовал в fgetss прописывать <body> как параметр до которого нужно удалять тэги.Однако из этого ничего не вышло.

Что у меня не получилось:
Не получилась очистка от тегов. То есть если брать простейшую страницу где ничего особенного нет то всё вроде нормально. Как только проэкспериментировал с более сложной страницей так сразу глюки. Пример: страница _http://besthotporno.com/2008/01/07/ty-prosto-zoloto.html , после запуска скрипта очистки из страницы видирается только текст из тега title потом облом. Попробывал вручную удалить метатэги и тайтл, так оно далее выдрало текст из навигации по сайту и опять всё застопорилось. ошибок никаких не выдаёт.

(Отредактировано автором: 15 Ноября, 2009 - 16:23:10)

 
 Top
valenok Модератор
Отправлено: 15 Ноября, 2009 - 18:21:42
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Стоит воспользоваться регулярными выражениями чтобы выдрать текст.


-----
Truly yours, Sasha.
 
My status
 Top
chaynyk
Отправлено: 15 Ноября, 2009 - 18:41:59
Post Id



Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Сент. 2007  
Откуда: MOSCOW


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




Если нужно убрать теги.
PHP:
скопировать код в буфер обмена
  1.  
  2. $site = ($_REQUEST['site1']);
  3. $fh = fopen($site,'r') or die($php_errormsg);
  4. $fh=strip_tags($fh);
  5.  


-----
Чайник в PHP и SEO,http://fleshky[dot]ru
 
 Top
novik
Отправлено: 15 Ноября, 2009 - 22:33:52
Post Id


Новичок


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


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




всем спасибо, буду думать
 
 Top
JustUserR
Отправлено: 16 Ноября, 2009 - 12:25:06
Post Id



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


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


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




novik пишет:
Чистим от html и php тегов
А если не секрет то как в получаемом с удаленного сервера документе могут оказаться PHP-теги


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Phantik
Отправлено: 16 Ноября, 2009 - 13:05:20
Post Id


Посетитель


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


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




novik пишет:
всем спасибо, буду думать


Чего тут думать? Вам выше написали функция strip_tags(). Чем она вам не подходит?
Для чего изобретать свой горбатый велосипед?
 
 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