Replacing part of a string with another string is straight forward, but what if you have to replace last occurrence of a character or string with another string.
Here is the fastest way to do this.
function str_replace_last( $search , $replace , $str ) { if( ( $pos = strrpos( $str , $search ) ) !== false ) { $search_length = strlen( $search ); $str = substr_replace( $str , $replace , $pos , $search_length ); } return $str; }
The first argument $search
keeps the string to be searched for, $replace
is the replacement string and $str
is the subject string, commonly known as haystack.
How to replace last occurrence of a string
$str = 'My Name is John.'; $search = 'John'; $replace = 'Peter'; echo str_replace_last( $search , $replace , $str ); //Result My Name is Peter.
In case the $search
is not found inside the $str
, the function returns the original untouched string $str
. This behavior is compatible with the default behavior of str_replace
PHP’s builtin function that replaces all occurrances of a string inside another string.