From:             mike at opendns dot com
Operating system: Linux, debian sarge
PHP version:      5.1.6
PHP Bug Type:     *Directory/Filesystem functions
Bug description:  fputcsv() fgetcsv() inconsistency even number backslashes 
then enclosure char

Description:
------------
If you write a string to file with fputcsv that contains an even number of
backslashes follwed by the enclosure character, you don't get your
enclosure character back when you read it back in with fgetcsv().  Then
you'll get an extra trailing enclosure character at the end of your
string.

Reproduce code:
---------------
$tmp_file = '/tmp/csv_f_up.tmp';

$data_to_write = array('string contains even number of backslashes \\\\"
followed by enclosure char');

echo "data_to_write:\n";
var_dump($data_to_write);

$h_w = fopen($tmp_file, 'w');
fputcsv($h_w, $data_to_write);
fclose($h_w);

$h_r = fopen($tmp_file, 'r');
$data_read_in = fgetcsv($h_r);
fclose($h_r);

echo "data_read_in:\n";
var_dump($data_read_in);

Expected result:
----------------
data_to_write:
array(1) {
  [0]=>
  string(73) "string contains even number of backslashes \\" followed by
enclosure char"
}
data_read_in:
array(1) {
  [0]=>
  string(73) "string contains even number of backslashes \\" followed by
enclosure char"
}

Actual result:
--------------
data_to_write:
array(1) {
  [0]=>
  string(73) "string contains even number of backslashes \\" followed by
enclosure char"
}
data_read_in:
array(1) {
  [0]=>
  string(73) "string contains even number of backslashes \\ followed by
enclosure char""
}

-- 
Edit bug report at http://bugs.php.net/?id=38929&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=38929&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=38929&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=38929&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=38929&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=38929&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=38929&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=38929&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=38929&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=38929&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=38929&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=38929&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=38929&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=38929&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=38929&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=38929&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=38929&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=38929&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=38929&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=38929&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=38929&r=mysqlcfg

Reply via email to