如何仅替换 PHP 中字符串末尾的特定单词?
How to replace only a specific word from the end of the string in PHP?
我有两个这样的字符串变量
$string1 = 'this is my house';
$string2 = 'this house is mine';
仅当 'house' 是字符串的最后一个单词时,我需要一种方法将 'house' 替换为 'dog'。
比如这段代码
function replace($input_string, $search_string, $replace_string){
//do the magic here!
}
$string1 = replace($string1, 'house','dog');
$string2 = replace($string2, 'house','dog');
echo $string1;
echo $string2;
希望 return 将...
this is my dog
this house is mine
您可能正在寻找这样的东西:
function replace($str,$from,$to){
$str = preg_replace('~('.preg_quote($from).')$~',$to,$str);
return $str;
}
请注意文档说不要在 preg_replace
中使用 preg_quote
,但老实说我不知道为什么。如果你知道,请评论。
根据您提到的条件,您可以执行如下操作。找到字数,然后检查字符串中是否有 home 可用,然后找到 house 的索引。那么您可以检查该索引是否与单词数组的最后一个索引匹配 (count($wordArray)) - 1)
$string1 = 'this is my house';
$string2 = 'this house is mine';
$wordArray = explode(' ', $string1); // make the array with words
//check the conditions you want
if (in_array('house', $wordArray) && (array_search('house', $wordArray) == (count($wordArray)) - 1)) {
$string1 = str_replace('house', 'dog', $string1);
}
echo $string1;
我有两个这样的字符串变量
$string1 = 'this is my house';
$string2 = 'this house is mine';
仅当 'house' 是字符串的最后一个单词时,我需要一种方法将 'house' 替换为 'dog'。
比如这段代码
function replace($input_string, $search_string, $replace_string){
//do the magic here!
}
$string1 = replace($string1, 'house','dog');
$string2 = replace($string2, 'house','dog');
echo $string1;
echo $string2;
希望 return 将...
this is my dog
this house is mine
您可能正在寻找这样的东西:
function replace($str,$from,$to){
$str = preg_replace('~('.preg_quote($from).')$~',$to,$str);
return $str;
}
请注意文档说不要在 preg_replace
中使用 preg_quote
,但老实说我不知道为什么。如果你知道,请评论。
根据您提到的条件,您可以执行如下操作。找到字数,然后检查字符串中是否有 home 可用,然后找到 house 的索引。那么您可以检查该索引是否与单词数组的最后一个索引匹配 (count($wordArray)) - 1)
$string1 = 'this is my house';
$string2 = 'this house is mine';
$wordArray = explode(' ', $string1); // make the array with words
//check the conditions you want
if (in_array('house', $wordArray) && (array_search('house', $wordArray) == (count($wordArray)) - 1)) {
$string1 = str_replace('house', 'dog', $string1);
}
echo $string1;