这是我的字符串:Hello world Hello How are You Hello world我想将最后一个Hello world替换为HW结果:Hello world Hello How are You HWstr_replace替换所有Hello world,但我想从末尾替换(如果存在)
Hello world Hello How are You Hello world
Hello world
HW
Hello world Hello How are You HW
str_replace
lkaoscv71#
我猜你想使用一个单一的功能,但它不存在。你可以创建自己的函数,像这样:
<?php function str_replace_last3($search, $replace, $subject) { $pos = strrpos($subject, $search); if ($pos === FALSE) return $subject; return substr($subject, 0, $pos) . $replace . substr($subject, $pos + strlen($search)); } echo str_replace_last3('Hello world', 'HW', 'Hello world Hello How are You Hello world');
这将返回:
参见:strrpos()注意,这个函数不像原来的str_replace()那样处理数组参数。
str_replace()
7tofc5zh2#
如果需要,可以使用preg_replace()使用模式Hello world$
preg_replace()
Hello world$
<?php $re = '/Hello world$/m'; $str = 'Hello world Hello How are You Hello world'; echo preg_replace($re, 'HW', $str); ?>
这将需要最少的代码,如果做它在一行
preg_replace('/Hello world$/m','HW','Hello world Hello How are You Hello world');
2条答案
按热度按时间lkaoscv71#
我猜你想使用一个单一的功能,但它不存在。你可以创建自己的函数,像这样:
这将返回:
参见:strrpos()
注意,这个函数不像原来的
str_replace()
那样处理数组参数。7tofc5zh2#
如果需要,可以使用
preg_replace()
使用模式
Hello world$
这将需要最少的代码,如果做它在一行