ID:               46463
 Updated by:       sjo...@php.net
 Reported By:      php-bugs at christoph-jeschke dot de
-Status:           Open
+Status:           Feedback
 Bug Type:         Filesystem function related
 Operating System: GNU/Linux
 PHP Version:      5.2CVS-2008-11-01
 New Comment:

Thank you for your bug report.

Your example uses a strange delimeter. First, it contains multiple
characters. Second, it contains non-ASCII characters. The documentation
says that the delimeter should be one character. When I try your
example, the lines are not split at all, so I can not reproduce the
problem.

Can you reproduce the problem with an ASCII-delimeter consisting of
multiple characters? Can you reproduce the problem with a delimiter
which is a single non-ASCII character? Can you still reproduce the
problem with the latest PHP version?


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

[2008-11-02 13:53:59] php-bugs at christoph-jeschke dot de

# php -v
PHP 5.2.7RC3-dev (cli) (built: Nov  2 2008 14:49:46)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologie

Returns:

array(3) {
  [0]=>
  string(7) "line1f1"
  [1]=>
  string(7) "line1f2"
  [2]=>
  string(7) "line1f3"
}
array(3) {
  [0]=>
  string(7) "line2f1"
  [1]=>
  string(7) "line2f2"
  [2]=>
  string(7) "line2f3"
}
array(2) {
  [0]=>
  string(7) "line3f1"
  [1]=>
  string(7) "line3f3"
}

The empty field is still omitted.

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

[2008-11-02 09:26:57] php-bugs at christoph-jeschke dot de

Description:
------------
Since PHP5, fgetcsv() omits empty fields instead returning a empty
string as did in PHP4.

Reproduce code:
---------------
csv.php
=======
<?php

$h = fopen('paragraph.csv','r');

while(false !== ($l = fgetcsv($h, 1024, '§', '\\')))
{
    var_dump($l);
}

fclose($h);

?>

paragraph.csv
=============
line1f1§line1f2§line1f3
line2f1§line2f2§line2f3
line3f1§§line3f3

Expected result:
----------------
array(3) {
  [0]=>
  string(7) "line1f1"
  [1]=>
  string(7) "line1f2"
  [2]=>
  string(7) "line1f3"
}
array(3) {
  [0]=>
  string(7) "line2f1"
  [1]=>
  string(7) "line2f2"
  [2]=>
  string(7) "line2f3"
}
array(3) {
  [0]=>
  string(7) "line3f1"
  [1]=>
  string(0) ""
  [2]=>
  string(7) "line3f3"
}

Actual result:
--------------
array(3) {
  [0]=>
  string(7) "line1f1"
  [1]=>
  string(7) "line1f2"
  [2]=>
  string(7) "line1f3"
}
array(3) {
  [0]=>
  string(7) "line2f1"
  [1]=>
  string(7) "line2f2"
  [2]=>
  string(7) "line2f3"
}
array(2) {
  [0]=>
  string(7) "line3f1"
  [1]=>
  string(7) "line3f3"
}



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


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

Reply via email to