我需要像str_replace()
一样但只有一个字符,并且必须是字符串的最后一个字符。
例如,如果我有:
$var = "one,two,three,four,finish";
我需要退回:
"one,two,three,fourfinish";
我需要替换字符串的最后一个,
。
我知道这可能很容易但我在网上找不到任何清楚的东西!
答案 0 :(得分:3)
您可以使用strrpos
查找字符串中最后一次出现的字符串,然后使用substr
:
<?php
$var = "one,two,three,four,finish";
if ($lastPosition = strrpos($var, ',')) {
$var = substr($var, 0, $lastPosition) . substr($var, $lastPosition + 1);
}
var_dump($var); //string(24) "one,two,three,fourfinish"
?>
如果你想替换它,你只需要在你的条件下连接替换字符串:
<?php
$var = "one,two,three,four,finish";
$replace = "-";
if ($lastPosition = strrpos($var, ',')) {
$var = substr($var, 0, $lastPosition) . $replace . substr($var, $lastPosition + 1);
}
var_dump($var); //string(24) "one,two,three,four-finish"
?>
答案 1 :(得分:3)
使用strrpos()
在字符串中查找最后一个逗号的位置,然后使用substr_replace()
将其删除:
echo substr_replace($var, '', strrpos($var, ','), 1);
答案 2 :(得分:0)
如果$ var的最后一个字总是&#34;完成&#34;,你可以使用它:
$var = "one,two,three,four,finish";
$goodVar = str_replace(',finish', 'finish', $var);
print $goodVar;
答案 3 :(得分:0)
试试这个。
$string = 'one,two,three,four,finish';
$find = ',';
$replace = '';
$result = preg_replace(strrev("/$find/"),strrev($replace),strrev($string),1);
echo strrev($result);
答案 4 :(得分:0)
$var = "one,two,three,four,finish";
$var = preg_replace("/,([^,]*)$/", "\\1", $var);
// $var: "one,two,three,fourfinish"
答案 5 :(得分:0)
您可以使用strchr
查找给定字符串中字符的最后一次出现
尝试
$var = "one,two,three,four,finish";
$len = strlen($var)-strlen(substr(strrchr($var,","),1));
echo substr($var,0,$len-1).substr(strrchr($var,","),1);
演示here
答案 6 :(得分:0)
您可以使用strrpos找到char“,”的最后一个偏移量。然后切割并合并。