PHP 字符串删除操作

September 26, 2013

从数据库里查询得到一个结果集,然后通过字符串拼接,拼成一个 json 数组格式的字符串。

第一次写法是这样的


$result = mysql_query($sql);
$string = '{"array":[';
while($row = mysql_fetch_array($result)){
$string .= '{"id":"'.$row['id'].'"},';
}
$string = substr($string,0,-1);
$string .= ']}';

$string = substr($string,0,-1) 这行代码的意思是,对$string 进行裁剪,从第 0 位开始,到倒数第一个。

这样的结果是,如果sql查询后有结果集的话,没问题,但是如果结果集为 空 的话,字符串就变成了{"array":]} ,数组被破坏了。想通过判断结果集是否为空来处理,但是 使用 empty($result) 并没有用,因为这个结果集是否为空,需要用 mysql_fetch_array() 来判断。所以增加$result 为空的判断失败了。

那另外一个解决办法就是从字符串上动手了。我的想法是,我想删除最后一个字符,但是它必须满足某个条件,比如最后一个字符是 ',' ,看php 的api 上,有这么一个方法 rtrim() ,trim() 就是删除一些特殊字符用的,rtrim() 是只对字符串的右边操作。把代码改成下面就OK了。

$string = rtrim($string,',');

PHP 提供的字符串操作的 API 还是比较丰富的。

--- EOF ---

评论

  1. 来学习下PHP

添加新评论