Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Очистка текста от тегов
 
 автор: Владимир55   (05.06.2007 в 17:57)   письмо автору
 
 

Вот здесь http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1562 cheops предложил прекрасное решение, освобождающее скачанную страницу сайта от тегов. У меня задача почти такая же, только текст слегка обработан и уже находится в переменной $buff. Понимаю, что прямая замена $link = $buff ; недопустима. Но как же мне сделать, чтобы этим скриптом обрабатывался текст не с адреса http://www.softtime.ru/, а из переменной $buff ?


$link = "http://www.softtime.ru/"; 
  $fd = fopen($link, "r");
  $text="";
  if (!$fd) echo "Запрашиваемая страница не найдена";
  // Чтение содержимого файла в переменную text
  else while (!feof ($fd)) $text .= fgets($fd, 4096);
  // Закрыть открытый указатель файла
  fclose ($fd);
  $search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // интерпретировать как php-код

  $replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

  $text = preg_replace($search, $replace, $text);
  echo $text;

   
 
 автор: hammet   (05.06.2007 в 18:01)   письмо автору
 
   для: Владимир55   (05.06.2007 в 17:57)
 


  $search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript 
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги 
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы 
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности 
                 "'&(amp|#38);'i", 
                 "'&(lt|#60);'i", 
                 "'&(gt|#62);'i", 
                 "'&(nbsp|#160);'i", 
                 "'&(iexcl|#161);'i", 
                 "'&(cent|#162);'i", 
                 "'&(pound|#163);'i", 
                 "'&(copy|#169);'i", 
                 "'&#(\d+);'e");                    // интерпретировать как php-код 
 
  $replace = array ("", 
                  "", 
                  "\\1", 
                  "\"", 
                  "&", 
                  "<", 
                  ">", 
                  " ", 
                  chr(161), 
                  chr(162), 
                  chr(163), 
                  chr(169), 
                  "chr(\\1)"); 
 
  $text = preg_replace($search, $replace, $buff); 
  echo $text; 

   
 
 автор: sms-send   (05.06.2007 в 18:17)   письмо автору
 
   для: hammet   (05.06.2007 в 18:01)
 

А не проще так?
<?php
$buff
=strip_tags($buff);
?>

   
 
 автор: hammet   (05.06.2007 в 18:19)   письмо автору
 
   для: sms-send   (05.06.2007 в 18:17)
 

А Вы проверьте в действии идентичность результатов выполнения приведенного выше и Вашего кода

   
 
 автор: Владимир55   (05.06.2007 в 18:31)   письмо автору
 
   для: hammet   (05.06.2007 в 18:19)
 

Ну просто высший класс!

Вот буквально то, что надо!

Большое, большое спасибо!!!

   
 
 автор: Владимир55   (05.06.2007 в 20:27)   письмо автору
 
   для: Владимир55   (05.06.2007 в 18:31)
 

А всеж таки нельзя ли сохранить перевод строки?

   
 
 автор: Loki   (06.06.2007 в 12:55)   письмо автору
 
   для: Владимир55   (05.06.2007 в 20:27)
 


<?php
$buff
=strip_tags($buff'<br />');
?> 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования