скажем есть переменная $contents = "Супер!!!!!!"; - надо убрать больше одного знака вопроса или $contents = "Суперррр"; - надо убрать больше одного знака "р"
Кощунство, имхо. Как такой скрипт отреагирует на слово "пассажир" ? Вообще все зависит от количества слов, от знаков. Если с примером для восклицательного знака, то PHP: <?php echo strtr($contents, Array("!" => "")); ?>
есть ограничение на минимальное количество знаков, и чтоб не добивали повторяющимися знаками - надо поставить проверку
Kreker как видишь я специально написал $contents = "Суперррр"; больше двух повторяющих знаков, я понимаю что правописание не стоит проверять но чтоб было не более 2 повторяющихся подряд знаков
czech Можно попробовать обработать регулярным выражением, учитывая только повторяющиеся символы в конце. Но сделав несколько попыток мне так и не удалось получить регулярным выражением повторяющиеся символы. Видимо, придется пробегаться по слову, проверяя каждую букву...
PHP: <?php $str = 'Сссссууууууупппппппеееееерррррр!!!!!! SuuPpEEr!'; echo preg_replace('~(.)\1+~i', '\\1', $str); ?> Вывод: Код (Text): Супер! SuPEr!
эт руки не стого места растут... PHP: <?php // 2008 (c) 440hz // замена всех повторяющихся символов на один $in = 'Прррииивввеееттт!!!! Шиииирррррроккккка Страна МММаааяяя РРРРРооооддННННаааЯЯЯЯЯ!!!!!'; $pat = '/(.{1})\1*/i'; $out = preg_replace($pat,'$1',$in); print("Source: [$in]\nTarget: [$out]\n"); ?> Код (Text): hosting(440hz):~/php$>php sym.php Source: [Прррииивввеееттт!!!! Шиииирррррроккккка Страна МММаааяяя РРРРРооооддННННаааЯЯЯЯЯ!!!!!] Target: [Привет! Широка Страна Мая РодНаЯ!]
PHP: <?php $content = "суперррррррр"; preg_match('~^(.)*?((?:.)\1+)[\s]*$~is', $content, $matches); echo str_replace($matches[2], '', $content); //супер ?> Туповато, правда... Просто не дочитал вовремя мануал про \int
Горбунов Олег это был просто пример. так сказать пАлет мысли. допиливать будет сам. p.s. галактико опасносте!