我有这个字符串:
$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()