Edit report at http://bugs.php.net/bug.php?id=53822&edit=1
ID: 53822
User updated by: withskyto at naver dot com
Reported by: withskyto at naver dot com
Summary: fgetcsv parsing error
Status: Open
Type: Bug
Package: Filesystem function related
Operating System: freebsd
PHP Version: 5.2.17
Block user comment: N
Private report: N
New Comment:
I save csv file from MS Office excel.
The file looks as below.
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
"0-2","sample sample 2","10000","10000","10000","1","A","2000-12-15
10:46:22.802144","2000-12-15
11:46:22.801114","1000","10","C","I","ê°","ë","T"
Test script:
---------------
setlocale(LC_CTYPE, "ko_KR.eucKR");
$fp = fopen('test.csv', 'r');
while ($arr = fgetcsv($fp, 10000, ',', '"')) {
print_r($arr);
}
Expected result:
----------------
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
[11] => 11
[12] => 12
[13] => 13
[14] => 14
[15] => 15
)
Array
(
[0] => 0-2
[1] => sample sample 2
[2] => 10000
[3] => 10000
[4] => 10000
[5] => 1
[6] => A
[7] => 2000-12-15 10:46:22.802144
[8] => 2000-12-15 11:46:22.801114
[9] => 1000
[10] => 10
[11] => C
[12] => I
[13] => ê°
[14] => ë
[15] => T
)
Actual result:
--------------
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
[11] => 11
[12] => 12
[13] => 13
[14] => 14
[15] => 15
)
Array
(
[0] => 0-2
[1] => sample sample 2
[2] => 10000
[3] => 10000
[4] => 10000
[5] => 1
[6] => A
[7] => 2000-12-15 10:46:22.802144
[8] => 2000-12-15 11:46:22.801114
[9] => 1000
[10] => 10
[11] => C
[12] => I
[13] => ê°",ë"
[14] => T
)
Previous Comments:
------------------------------------------------------------------------
[2011-01-23 15:51:34] withskyto at naver dot com
Change Status
------------------------------------------------------------------------
[2011-01-23 15:49:35] withskyto at naver dot com
change Package
------------------------------------------------------------------------
[2011-01-23 15:09:21] withskyto at naver dot com
I check this file.
OpenOffice.org Calc and MS Offie excel - It seems to parse properly.
------------------------------------------------------------------------
[2011-01-23 15:01:05] withskyto at naver dot com
Description:
------------
I save csv file from MS Office excel.
The file looks as below.
A,B,C,D
AAA,"BB,B","CCC,'\C,,CCC","D,DDD"
"AA""AA","BB"",BBB""B","CC\""CC,,C""",DDD
fgetcsv seems to be incorrect, if the cell in EXCEL include escape
string.
Test script:
---------------
$fp = fopen('test3.csv', 'r');
while ($arr = fgetcsv($fp, 10000, ',', '"')) {
print_r($arr);
}
Expected result:
----------------
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
)
Array
(
[0] => AAA
[1] => BB,B
[2] => CCC,'\C,,CCC
[3] => D,DDD
)
Array
(
[0] => AA"AA
[1] => BB",BBB"B
[2] => CC\"CC,,C"
[3] => DDD
)
Actual result:
--------------
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
)
Array
(
[0] => AAA
[1] => BB,B
[2] => CCC,'\C,,CCC
[3] => D,DDD
)
Array
(
[0] => AA"AA
[1] => BB",BBB"B
[2] => CC\"CC
[3] =>
[4] => C"""
[5] => DDD
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53822&edit=1