<?php
ini_set('auto_detect_line_endings', TRUE);
$csv = array_map('str_getcsv', file('Testcsv.csv'));
print_r($csv);
此代码解析如下所示的Testcsv.csv文件。
4,5,6,7,8
9,10,11,12,13
0,1,3,2,15
但是最后一个打印语句返回
Array
(
[0] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
[4] => 8
)
[1] => Array
(
[0] => 9
[1] => 10
[2] => 11
[3] => 12
[4] => 13
)
[2] => Array
(
[0] => 0
[1] => 1
[2] => 3
[3] => 2
[4] => 15
)
)
vardump($ csv)产生
array(3) {
[0]=>
array(5) {
[0]=>
string(4) " 4"
[1]=>
string(1) "5"
[2]=>
string(1) "6"
[3]=>
string(1) "7"
[4]=>
string(1) "8"
}
[1]=>
array(5) {
[0]=>
string(1) "9"
[1]=>
string(2) "10"
[2]=>
string(2) "11"
[3]=>
string(2) "12"
[4]=>
string(2) "13"
}
[2]=>
array(5) {
[0]=>
string(1) "0"
[1]=>
string(1) "1"
[2]=>
string(1) "3"
[3]=>
string(1) "2"
[4]=>
string(2) "15"
}
}
无论我做什么或如何格式化csv,第一个值总会在其前面插入一个空格。在这种情况下,用“ 4”代替“ 4”。我不明白为什么。我在Mac电脑上,没有第一行代码,事情就变得很不稳定,因为它无法检测到换行符。我创建了.csv并将其保存在Excel中。任何见解都会有所帮助,谢谢。