PHP 拆分字符串异常
PHP Split string with exception
我有一个字符串需要拆分:
3,1,'2015,05,14,11,18,0', 99
我想拆分成
3
1
'2015,05,14,11,18,0'
99
我如何用 PHP 做到这一点?
其中一条评论(特别是@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);
我有一个字符串需要拆分:
3,1,'2015,05,14,11,18,0', 99
我想拆分成
3
1
'2015,05,14,11,18,0'
99
我如何用 PHP 做到这一点?
其中一条评论(特别是@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);