ID: 27730
Updated by: [EMAIL PROTECTED]
Reported By: clemens at gutweiler dot net
-Status: Open
+Status: Closed
Bug Type: Documentation problem
Operating System: Linux 2.6.3 (and 2.4.20)
PHP Version: 4.3.5
New Comment:
Fixed in the docs in CVS
Previous Comments:
------------------------------------------------------------------------
[2004-03-28 12:03:39] [EMAIL PROTECTED]
This isn't actually a bug. I have changed this to a documentation
problem as the example on the fgetcsv() page is not very good. The
text description of the function is however correct. You get a
zero-element array for blank lines and FALSE on end of file. So your
code should have a loop like this:
while( ($d = fgetcsv( $fp, 4096, ';' )) !== FALSE )
------------------------------------------------------------------------
[2004-03-27 08:50:09] clemens at gutweiler dot net
Description:
------------
fgetcsv() breaks reading when a line has no cdata (eg. \n\n)
Reproduce code:
---------------
<?php
$fn = tempnam( '/tmp', 'test' );
if( $fp = fopen( $fn, 'w' ) ) {
fwrite( $fp, "one;val1\ntwo;val2\n\nthree;val3\n" );
fclose( $fp );
if( $fp = fopen( $fn, 'r' ) ) {
$items = array( );
while( $d = fgetcsv( $fp, 4096, ';' ) ) {
$items[] = $d;
}
fclose( $fp );
var_dump( $items );
}
}
?>
Expected result:
----------------
$items-count of 4
Actual result:
--------------
$item-count of 2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27730&edit=1