PHP:String字符串结尾的str_replace

bf1o4zei  于 2023-06-04  发布在  PHP
关注(0)|答案(2)|浏览(147)

这是我的字符串:
Hello world Hello How are You Hello world
我想将最后一个Hello world替换为HW
结果:
Hello world Hello How are You HW
str_replace替换所有Hello world,但我想从末尾替换(如果存在)

lkaoscv7

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');

这将返回:

Hello world Hello How are You HW

参见:strrpos()
注意,这个函数不像原来的str_replace()那样处理数组参数。

7tofc5zh

7tofc5zh2#

如果需要,可以使用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');

相关问题