ID:               20716
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
-Bug Type:         Unknown/Other Function
+Bug Type:         Filesystem function related
 Operating System: RedHat Linux 6.2
 PHP Version:      4.3.0RC2
 New Comment:

The correct output (4.2.3):

array (
  0 =>
  array (
    0 => 'f1',
    1 => 'f2',
    2 => 'f3',
  ),
  1 =>
  array (
    0 => 'Test 1a',
    1 => 'Test 1b',
    2 => 'Test 1c',
  ),
  2 =>
  array (
    0 => 'Test 2a',
    1 => 'Test 2b - line 1
Test 2b - line 2
Test 2b - line 3',
    2 => 'Test 2c',
  ),
)

Incorrect output (4.3.0RC2):
array (
  0 =>
  array (
    0 => 'f1',
    1 => 'f2',
    2 => 'f3',
  ),
  1 =>
  array (
    0 => 'Test 1a',
    1 => 'Test 1b',
    2 => 'Test 1c',
  ),
  2 =>
  array (
    0 => 'Test 2a',
    1 => 'Test 2b - line 1',
  ),
  3 =>
  array (
    0 => 'Test 2b - line 2',
  ),
  4 =>
  array (
    0 => 'Test 2b - line 3"',
    1 => 'Test 2c',
  ),
)


Previous Comments:
------------------------------------------------------------------------

[2002-11-29 04:52:52] [EMAIL PROTECTED]

fgetcsv() was able to read multi-line fields that were quoted. Here is
the example of the test file:

f1;f2;f3
Test 1a;Test 1b;Test 1c
Test 2a;"Test 2b - line 1
Test 2b - line 2
Test 2b - line 3";Test 2c

We are trying to parse this file with the following code:

$f = @fopen($argv[1], "r");
if (!$f) exit("Cannot open input file.\n");

$v = array();

while ($data = fgetcsv ($f, 10000, ";"))
{
  $v[] = $data;
}

var_export($v);

Now, in PHP 4.2.3 and earlier this produces correct 3 element array.
PHP 4.3.0-dev produces 5 element array because it gets confused with
the multiple line input in the 2b field.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=20716&edit=1

Reply via email to