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