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

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

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

 

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

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

тема: Нарезка текста на отдельные слова.
 
 автор: rbzru   (10.12.2006 в 22:24)   письмо автору
 
 

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

Пример:
Предлагаем фанеру ,ДВП , ДСП, ЛДСП , пиломатериалы , тепло и звукоизоляция, кровельные материалы, гидроизоляция, сайдинг, кирпич, пеноблоки, сухие смеси, отделочные материалы , и т.д. . Склад в Москве . Доставка по Москве и области по звонку , оплата после получения товара.
Остается после

Предлагаем фанеру ДВП ДСП ЛДСП пиломатериалы тепло и звукоизоляция кровельные материалы гидроизоляция сайдинг кирпич пеноблоки сухие смеси отделочные материалы Склад Москве Доставка Москве области позвонку оплата после получения товара

Естественно все одной строкой

Заранее большое спасибо.

   
 
 автор: Trianon   (10.12.2006 в 22:47)   письмо автору
 
   для: rbzru   (10.12.2006 в 22:24)
 

особенно интересно обработаны предлоги "по" и "после". )

   
 
 автор: rbzru   (10.12.2006 в 23:16)   письмо автору
 
   для: Trianon   (10.12.2006 в 22:47)
 

К мелочам не нужно придираться, суть не меняется.
Это примерно.

   
 
 автор: kasmanaft   (10.12.2006 в 23:44)   письмо автору
 
   для: rbzru   (10.12.2006 в 22:24)
 

Можно вот так попробовать:

<?
$text 
'Предлагаем ........... ';
preg_match_all("#(\w+)#is"$text$words);
$words array_flip($words[1]);
unset(
$words['после'], $words['в'], $words['как']);
echo 
"<pre>"print_r($words); echo "</pre>";
?>

Правда это регистрозависимый вариант ...

   
 
 автор: rbzru   (10.12.2006 в 23:54)   письмо автору
 
   для: kasmanaft   (10.12.2006 в 23:44)
 

А как сделать регистронезависимый ? Можно ли сделать вырезание слов из масива длиной от 1 до 2 символов.

Также чтобы исключались повторы из масива.

У меня вывелось в таком виде:
[Оборудование] => 0
[для] => 103
[охлаждения] => 35
[домашней] => 3
[птицы] => 13
[билы] => 5
[28] => 119
[11] => 7
[2006] => 8
[Продаем] => 9
[линии] => 10
[по] => 94
[охлаждению] => 95
[Combi] => 14

Как вывести слова в строчку через запятую

   
 
 автор: Саня   (10.12.2006 в 23:55)   письмо автору
 
   для: rbzru   (10.12.2006 в 22:24)
 

<pre><?
$str 
"Предлагаем фанеру ,ДВП , ДСП, ЛДСП ,
        пиломатериалы , тепло и звукоизоляция, кровельные
        материалы, гидроизоляция, сайдинг, кирпич, пеноблоки,
        сухие смеси, отделочные материалы , и т.д. . Склад
        в Москве . Доставка по Москве и области по звонку
        , оплата после получения товара."
;
$str str_replace(array("\r\n"",""."), " "$str);
$explode explode(" "$str);
$words = array();
for ( 
$i 0$i count($explode); $i++ ) {
  
$var trim($explode[$i]);
  if ( 
strlen($var) > ) {
    
$words[] = $var;
  }
}
print_r($words);
$uniq array_unique($words);
print_r($uniq);

foreach ( 
$uniq as $wrd ) {
  print 
$wrd.", ";
}

   
 
 автор: rbzru   (11.12.2006 в 00:34)   письмо автору
 
   для: Саня   (10.12.2006 в 23:55)
 

Отличная штука, вот еще бы добавить вырезку встречающихся в тексте ссылок ввиде http://....
или www.site.ru
И вырезку всех знаков и цифр.

   
 
 автор: Саня   (11.12.2006 в 01:35)   письмо автору
 
   для: rbzru   (11.12.2006 в 00:34)
 

-->

   
Rambler's Top100
вверх

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