PHP拆分字符串有异常

时间:2015-05-14 04:13:05

标签: php split

我有一个需要拆分的字符串:

3,1,'2015,05,14,11,18,0', 99

我想把它分成

3
1
'2015,05,14,11,18,0'
99

我怎么能用PHP做到这一点?

1 个答案:

答案 0 :(得分:2)

其中一条评论(特别是@tuananh)说csv parser,所以一点点试用,fgetcsv也会起作用,你只需拥有那个简单的临时文件字符串,只需在操作后取消链接即可。

只需将机箱设置为单引号,这样当解析器将其分解时,它会用单引号括起整个字符串。

$string = "3,1,'2015,05,14,11,18,0', 99";
file_put_contents('temp.csv', $string); // create temporary file
$fh = fopen('temp.csv', 'r'); // open
$line = fgetcsv($fh, strlen($string) + 1, ',', "'"); // set enclosure to single quotes
fclose($fh);
unlink('temp.csv'); // remove temp file
print_r($line); // Array ( [0] => 3 [1] => 1 [2] => 2015,05,14,11,18,0 [3] => 99 )
// echo implode("\n", $line);

旁注:如果这确实是一个csv文件,那么只需使用fgetcsv即可。

编辑:正如@deceze所说使用csv函数作为字符串

有一个名为str_getcsv的东西,所以不需要将它实际放在文件中取消链接。

$string = "3,1,'2015,05,14,11,18,0', 99";
$line = str_getcsv($string, ',', "'"); // set enclosure to single quotes
print_r($line);