[英]PHP csv string parsing
I have a PHP CSV file that looks like this: 我有一个如下所示的PHP CSV文件:
'numberOfProducts' 'lastUpdated'
'28' '2016-09-19 06:55'
I tried to do like this: 我试图这样做:
print_r( str_getcsv( $csv, "\n", "\t" ) );
print_r( str_getcsv( $csv, "\t", "\n" ) );
It's just a mess. 只是一团糟。
But my expected result should be something like this: 但是我的预期结果应该是这样的:
'numberOfProducts' => '28'
'lastUpdated' => '2016-09-19 06:55'
Is it possible with str_getcsv or is it easier with explode ? str_getcsv是否可能,或者explode是否更容易?
The is my result: 这是我的结果:
Array
(
[0] => numberOfProducts
[1] => lastUpdated
'28'
[2] => 2016-09-19 06:55
)
Not like my expected result. 不喜欢我的预期结果。
The documentation is quite clear 文档非常清楚
array str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\\\" ]]] )
Your delimiter is neither \\n
, nor \\r
- which both represents line breaks. 您的定界符既不是
\\n
也不是\\r
两者都表示换行符。 Your delimiter looks like tab. 您的定界符看起来像制表符。 So try it with
所以尝试一下
print_r( str_getcsv( $csv, "\t", "'"));
" str_getcsv " only parse one row at a time: “ str_getcsv ”一次只能解析一行:
You need to run it for each row: 您需要为每一行运行它:
$rows = explode("\n", $csv);
foreach($rows as $row){
print_r( str_getcsv( $row, "\t", "'") );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.