Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > как вырезать в тексте предлоги из под на...


Автор: americanets 25.4.2007, 14:12


Код

$text=str_replace('под', '', $text);
вырезает также и из слов например подземный получается земный , а нужно удалять целиковые 

Автор: capitan 25.4.2007, 14:40
а если так:
Код

$text=str_replace(" под ", "", $text);

Автор: americanets 25.4.2007, 15:45
точно, буду пробовать, что-то не подумал smile 

Автор: SelenIT 26.4.2007, 07:05
Вариант:
Код

$text=preg_replace("/\b(?:из|под|на)\b/is", "", $text);

Правда, как всегда при работе регулярками с русскими буквами (да и вообще), должна быть верно настроена локаль.

Автор: americanets 26.4.2007, 16:55
SelenIT, понятно, этот вариант получше, тк под: уже не вырезался 

Автор: WolfON 26.4.2007, 18:26
Регулярки медленнее чем стандартные функции, используй это:
Код

$text=str_ireplace(array(' из ', ' под ', ' на '), ' ', $text);


В данном случае в 4 раза пример теста:
Код

$text = "подвед при принать на под измор из мор Из киз из пОд прове при пырво из: нагы на, привепод, _под из на под в гы гы гы тексттекстекстизподнаприподиз";
$text.=$text.$text.$text.$text.$text.$text.$text;
$t = microtime();
$text2=str_ireplace(array(' из ', ' под ', ' на '), ' ', $text);
echo (microtime()-$t)."\n$text2\n";
$t = microtime();
$text2=preg_replace("/\b(?:из|под|на)\b/is", "", $text);
echo (microtime()-$t)."\n$text2\n";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)