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


Автор: poiuyt1234 2.5.2011, 18:56
Нужно в тексте $text 
найти последнее вхождение строки $s1
и заменить $s1( только последнее вхождение) на строку $s2
как такое сделать?

Автор: Kotakota 2.5.2011, 21:53
strrpos - для нахождения последнего вхождения.
str_replace - для ПРОСТОЙ замены.
Дальше разберешься?

Автор: poiuyt1234 2.5.2011, 23:08
Цитата(Kotakota @ 2.5.2011,  21:53)
strrpos - для нахождения последнего вхождения.
str_replace - для ПРОСТОЙ замены.
Дальше разберешься?

Я пробовал вот такой код:
Код


$pos = strripos($text,"abc");

$text2 = substr_replace($text,'abc2fd', $pos, $pos + 3);

но он почему-то обрезает текст с начала до abc2fd. 

как сделать с функциями:
strrpos
str_replace

не понятно мне..  

Автор: almagnit 3.5.2011, 00:27
Код
$text = substr($text, 0, strripos($text, $s1)) . $s2 . substr($text,  strripos($text, $s1)+strlen($s1), strlen($text) - (strripos($text, $s1)+strlen($s1) ));

Автор: poiuyt1234 3.5.2011, 12:45
Цитата(almagnit @ 3.5.2011,  00:27)
Код
$text = substr($text, 0, strripos($text, $s1)) . $s2 . substr($text,  strripos($text, $s1)+strlen($s1), strlen($text) - (strripos($text, $s1)+strlen($s1) ));

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

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