Ask a Question related to PHP Bugs, Design and Development.
-
mike at opendns dot com #1
#38929 [NEW]: fputcsv() fgetcsv() inconsistency even number backslashes then enclosure char
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 [url]http://bugs.php.net/?id=38929&edit=1[/url]
--
Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=38929&r=trysnapshot44[/url]
Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=38929&r=trysnapshot52[/url]
Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=38929&r=trysnapshot60[/url]
Fixed in CVS: [url]http://bugs.php.net/fix.php?id=38929&r=fixedcvs[/url]
Fixed in release: [url]http://bugs.php.net/fix.php?id=38929&r=alreadyfixed[/url]
Need backtrace: [url]http://bugs.php.net/fix.php?id=38929&r=needtrace[/url]
Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=38929&r=needscript[/url]
Try newer version: [url]http://bugs.php.net/fix.php?id=38929&r=oldversion[/url]
Not developer issue: [url]http://bugs.php.net/fix.php?id=38929&r=support[/url]
Expected behavior: [url]http://bugs.php.net/fix.php?id=38929&r=notwrong[/url]
Not enough info: [url]http://bugs.php.net/fix.php?id=38929&r=notenoughinfo[/url]
Submitted twice: [url]http://bugs.php.net/fix.php?id=38929&r=submittedtwice[/url]
register_globals: [url]http://bugs.php.net/fix.php?id=38929&r=globals[/url]
PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=38929&r=php3[/url]
Daylight Savings: [url]http://bugs.php.net/fix.php?id=38929&r=dst[/url]
IIS Stability: [url]http://bugs.php.net/fix.php?id=38929&r=isapi[/url]
Install GNU Sed: [url]http://bugs.php.net/fix.php?id=38929&r=gnused[/url]
Floating point limitations: [url]http://bugs.php.net/fix.php?id=38929&r=float[/url]
No Zend Extensions: [url]http://bugs.php.net/fix.php?id=38929&r=nozend[/url]
MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=38929&r=mysqlcfg[/url]
mike at opendns dot com Guest
-
#40501 [NEW]: fgetcsv can't handle trailing odd number of backslashes
From: mike at opendns dot com Operating system: Linux, debian sarge PHP version: 5.2.1 PHP Bug Type: Filesystem function... -
#39538 [NEW]: fgetcsv can't handle starting newlines and trailing odd number of backslashes
From: mike at opendns dot com Operating system: Linux, debian sarge PHP version: 5.2.0 PHP Bug Type: *Directory/Filesystem... -
#38918 [NEW]: fputcsv() fgetcsv() inconsistency odd number trailing backslashes
From: mike at opendns dot com Operating system: Linux, debian sarge PHP version: 5.1.6 PHP Bug Type: Filesystem function... -
#25872 [Opn->Bgs]: Query of MS-Word char causes ISO number to show up instead of actual character
ID: 25872 Updated by: iliaa@php.net Reported By: mrtima at aol dot com -Status: Open +Status: Bogus... -
#25872 [NEW]: Query of MS-Word char causes ISO number to show up instead of actual character
From: mrtima at aol dot com Operating system: Any PHP version: 4.3.1 PHP Bug Type: MySQL related Bug description: Query of... -
tony2001@php.net #2
#38929 [Opn->Bgs]: fputcsv() fgetcsv() inconsistency even number backslashes then enclosure char
ID: 38929
Updated by: [email]tony2001@php.net[/email]
Reported By: mike at opendns dot com
-Status: Open
+Status: Bogus
Bug Type: *Directory/Filesystem functions
Operating System: Linux, debian sarge
PHP Version: 5.1.6
New Comment:
The same problem as #38918.
Previous Comments:
------------------------------------------------------------------------
[2006-09-22 20:05:05] mike at opendns dot com
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 this bug report at [url]http://bugs.php.net/?id=38929&edit=1[/url]
tony2001@php.net Guest



Reply With Quote

