2013-10-08 147 views
0
$line = "30,[CVS Core] server dot cvsignore file should be considered by client (1GCC6MB),[email protected],expert,[email protected]"; 
list($bugId,$bugText,$dupId,$submitId,$submitExpert,$bugFixerId) = split(",", $line); 
echo $bugId.","; 
echo $submitId.","; 
echo $submitExpert.","; 
echo $bugFixerId.","; 
echo $bugText; 

这里是我的PHP代码,但我不知道为什么,这表明未定义抵消:5PHP分割字符串以逗号

和这里的结果

30,专家,平台VCM- [email protected] ,, [CVS Core]服务器点cvsignore文件应该被客户端考虑(1GCC6MB)

我不知道发生了什么事。

感谢

+0

顺便说一句,[PHP文档](http://php.net/split)说:'这个函数从PHP 5.3.0开始已经被拒绝。依靠这个特性非常令人沮丧。'使用'explode(',',$ line);'! – ComFreek

+0

看到双,,,其中一个是空的 – 2013-10-08 18:58:00

+1

@ComFreek是正确的,你应该为此而爆炸。并使用'var_dump(explode(“,”,$ line));'你会看到你只能得到_five_部分,但你正试图将它们列入_six_变量。 – CBroe

回答

4

你有4个逗号你的字符串,这意味着split()电话后,你会得到5个值,而是试图拆分结果分配给变量。最后一个导致未定义的偏移警告。 Elimiante从list()$bugFixerID,警告应该消失。

+0

谢谢。我的坏,愚蠢的错误。 – user1167910

0

$line您有5个逗号分隔值,但list()需要6个值。

$line = "30,[CVS Core] server dot cvsignore file should be considered by client (1GCC6MB),[email protected],expert,[email protected]"; 

list($bugId,$bugText,$dupId,$submitId,$submitExpert) = split(",", $line); 

$bugFixerId应该被删除或需要提供$bugFixerId上$线。

相关问题