PHP替换从当前位置到字符串末尾的最后一个字符


PHP Replace last occurence of character from current position until the end of the string

我有这个字符串:

$string = '{"status":"2","vote":"1"},{"status":"1","vote":"0"}, "blabla"';

我想得到最后一个出现的"}"的位置,并删除它后面的其余字符,然后追加"]"。请帮忙。谢谢

怎么样

$newString = substr($string,0,(strrpos($string,"}")+1))."]";

strrpos获取字符串最后一次出现的位置

http://php.net/manual/en/function.strrpos.php

$string = '{"status":"2","vote":"1"},{"status":"1","vote":"0"}, "blabla"';
$newString = (substr($string, 0, strrpos($string, "}") + 1))."]";
echo $newString; //results: {"status":"2","vote":"1"},{"status":"1","vote":"0"}]

使用本地json函数

$j=json_decode("[$string]");
array_pop($j);
echo json_encode($j);

否则你会遇到很多问题,比如在这种情况下:

 $string = '{"status":"2","vote":"1"},{"status":"1","vote":"0"}, "bla}bla"';

您必须使用PHP函数strrpos(),它将从右侧首次出现字符串。

echo $newString = substr($string,0,strrpos($string,"}")+1)."]";

输出

{"status":"2","vote":"1"},{"status":"1","vote":"0"}]

检查手动strrpos()