Удаление слов из текста

serzh

Guest
Удаление слов из текста

Столкнулся с такой проблемой. У меня есть текст в котором содержаться смайлы обозначенные кодом ":yes:". Моя задача сделать так, чтобы в тексте было не больше 3 смайлов, тоесть не больше 3 слов ":yes:". Вообщем нужно удалить смайлы с конца, оставь только первые 3 штуки.

Приведу пример:

Есть тест:
"Привет!:yes:Как дела?:yes:Как настроение?:yes:Почему не спишь?:yes:Как там у вас погода?:yes:"

А нужно автоматически получить текст следующего вида:
"Привет!:yes:Как дела?:yes:Как настроение?:yes:Почему не спишь?Как там у вас погода?"

Как это осуществить?
 

advocat

developer
2 Krisha не согласен с тобой, так как я показал на какой параметр и в какой ф-ции нужно обратить внимание


iliah перечитай вопрос еще раз, я могу написать готовое решение, но я пытаюсь направить по правильному пути, а не просто привести кусок готового кода
 

serzh

Guest
preg_replace (":yes:", "", "Привет!:yes:Как дела?:yes:Как настроение?:yes:Почему не спишь?:yes:Как там у вас погода?:yes", 3);

Выводит: Привет!::Как дела?::Как настроение?::Почему не спишь?:yes:Как там у вас погода?:yes

Естественно функция убирает первые 3 штуки, а как сделать последние 3? Пробовал ставить отрицательное число в лимите - не работает. :( И ещё... Почему двоеточия не реплэйсятся?

-~{}~ 09.10.04 16:16:

Ещё если можно давай-те примерчик кода, потому что увидев пример проще разобраться, чем понять всё на словах.
 

serzh

Guest
Ясно. Может кто-нить всё таки даст примерчик? А то никогда не имел дела с регулярными выражениями.
 

advocat

developer
Diesel а ограничить каким образом ???

serzh
PHP:
$str = "Привет!:yes:Как дела?:yes:Как настроение?:yes:Почему не спишь?:yes:Как там у вас погода?:yes";
$str = preg_replace ("':yes:'i", "<img src=\"smile..\">", $str, 3);
$str = preg_replace ("':yes:'i", "", $str);
print $str;
 

serzh

Guest
2Diesel, если бы можно было, я бы так и сделал. Мне ведь нужно указать лимит удаления, тоесть 3 штуки и сделать так чтобы они удалялись с конца. Если это как то можно сделать с помощью str_replace - подскажи.

-~{}~ 09.10.04 17:21:

2advocat, спасибо, вот теперь всё понятно! И как я сам раньше до такого решения не додумался...
 

_RVK_

Новичок
Ладно, тогда [m]substr_replace[/m]. Думаю найти позицию 3-его c конца :yes: не составит труда

-~{}~ 09.10.04 17:26:

advocat
не нужно советовать злупостей. гонять 2 раза реги там где можно сделать легко обычными функциями... А если элементов не 6?
 
Сверху