php内爆但不考虑额外的分隔符

时间:2009-09-10 03:55:11

标签: php

我有一个如下字符串:

test1, test2, test3, test4, 

当我在这上面使用implode函数时,我得知数组中有5个元素。

我怎能不考虑最后一个额外的逗号?

或者更好的是,我如何对其进行子串,以便最终没有额外的逗号。

3 个答案:

答案 0 :(得分:5)

您可以使用rtrim()删除尾随逗号(或任何字符);
试试这个:
$ str = rtrim('test1,test2,test3,test4,',',');

请参阅rtrim()@ http://us2.php.net/manual/en/function.rtrim.php

的文档

答案 1 :(得分:0)

也许rtrim()更好,正如Arms建议的那样。但是,正如你要求子串,只是让它注册...

substr($string, 0, -1);

当secound参数为负值时,它将像strlen($string)-N一样,并为您提供缺少最后N个字符的字符串。

答案 2 :(得分:-1)

我可能会用

preg_split('#, *#', $str, null, PREG_SPLIT_NO_EMPTY)

使用输入会更加灵活(处理连续的逗号,缺少空间或加倍空间等等)当然,这取决于您对输入的信心保持不变。

请参阅preg_split()'s manual entry