ID:               29163
 User updated by:  ramon_herrera at eloyalty dot com
 Reported By:      ramon_herrera at eloyalty dot com
 Status:           Assigned
 Bug Type:         Filesystem function related
 Operating System: win2k & GNU/Linux (FC2)
-PHP Version:      4.3.8
+PHP Version:      5.0.0
 Assigned To:      iliaa
 New Comment:

The version 4.3.8 fgetcsv() works fine.  It reads a single space
character from a CSV field containing a single space character.  If
that is what my data is then that is exactly what I want fgetcsv() to
read.

The version 5.0.0 fgetcsv() drops that space character.

Thank you very much for your efforts.


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

[2004-07-20 22:40:06] [EMAIL PROTECTED]

The reported behaviour is inconsistent with these of 
older versions prior to 4.3.4.

Assigning to the person who broke it.


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

[2004-07-15 18:07:12] ramon_herrera at eloyalty dot com

Version 4.3.8 results are identical to the version 4.3.7 results.

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

[2004-07-15 06:50:20] ramon_herrera at eloyalty dot com

(Ignore this comment.  I just needed to clarify the bug category.)

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

[2004-07-15 06:46:49] ramon_herrera at eloyalty dot com

The same results occur when running a similar CLI script on my Fedora
Core 2 machine under both versions (4.3.7 and 5.0.0).

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

[2004-07-14 22:02:00] ramon_herrera at eloyalty dot com

Description:
------------
A field consisting of one space character is read as an empty string by
the fgetcsv function in version 5.0.0 where the version 4.3.7 fgetcsv
reads the space as it is presented.

The startup .bat file and the CSV file are both listed below.

./test.bat, set to use the PHP 5.0.0 binaries
--------------------------------------------\
@echo off
set PHPROOT=.
REM set PHPVER=4.3.7
set PHPVER=5.0.0
set PHPEXE=%PHPROOT%\bin_%PHPVER%\php.exe
set PHPINI=%PHPROOT%\etc\test.ini
set PHPPHP=%PHPROOT%\usr\test.php
%PHPEXE% -c %PHPINI% -f %PHPPHP%
--------------------------------------------/

./var/zinput.txt
--------------------------------------------\
foo,bar,nextisspace, ,previsspace,last

--------------------------------------------/

Reproduce code:
---------------
<?
define('ZINPUT', 'var/zinput.txt');;
define('FDLM',   ',');
define('LLEN',   512);

$fhin  = @fopen(ZINPUT, 'rb');
while ( FALSE !== ($s = fgetcsv($fhin, LLEN, FDLM)) )
        $inputlines[] = $s;
fclose($fhin);

var_dump($inputlines);

echo "\r\nTested with version " . phpversion() . "\r\n";
?>

Expected result:
----------------
D:\foo>test.bat
array(1) {
  [0]=>
  array(6) {
    [0]=>
    string(3) "foo"
    [1]=>
    string(3) "bar"
    [2]=>
    string(11) "nextisspace"
    [3]=>
    string(1) " "
    [4]=>
    string(11) "previsspace"
    [5]=>
    string(4) "last"
  }
}

Tested with version 4.3.7

D:\foo>

Actual result:
--------------
D:\foo>test.bat
array(1) {
  [0]=>
  array(6) {
    [0]=>
    string(3) "foo"
    [1]=>
    string(3) "bar"
    [2]=>
    string(11) "nextisspace"
    [3]=>
    string(0) ""
    [4]=>
    string(11) "previsspace"
    [5]=>
    string(4) "last"
  }
}

Tested with version 5.0.0

D:\foo>


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


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

Reply via email to