简体   繁体   English

PHP csv字符串解析

[英]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. 只是一团糟。

Expected result 预期结果

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是否更容易?

Result 结果

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM