我有一个需要拆分的字符串:
3,1,'2015,05,14,11,18,0', 99
我希望您将其分割为。
3
1
'2015,05,14,11,18,0'
99
我该如何使用PHP来实现这个功能?
我有一个需要拆分的字符串:
3,1,'2015,05,14,11,18,0', 99
3
1
'2015,05,14,11,18,0'
99
其中一个评论者(@tuananh)提到了csv解析器,所以经过一些试验,fgetcsv
也可以正常工作,你只需要拥有一个暂存简单字符串的临时文件,在操作完成后删除即可。
将enclosure设置为单引号,这样当解析器分解字符串时,它会将整个用单引号包含的字符串全部获取。
$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);
str_getcsv
,谢谢你的提醒。 - Kevin