我有一个需要拆分的字符串:
3,1,'2015,05,14,11,18,0', 99
我想把它分成
3
1
'2015,05,14,11,18,0'
99
我怎么能用PHP做到这一点?
答案 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);