mirror of
https://github.com/php/php-src.git
synced 2024-12-12 03:15:29 +08:00
Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4
This commit is contained in:
commit
3bc7490370
@ -1871,20 +1871,16 @@ PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char en
|
||||
FPUTCSV_FLD_CHK('\n') ||
|
||||
FPUTCSV_FLD_CHK('\r') ||
|
||||
FPUTCSV_FLD_CHK('\t') ||
|
||||
FPUTCSV_FLD_CHK('\\') ||
|
||||
FPUTCSV_FLD_CHK(' ')
|
||||
) {
|
||||
char *ch = Z_STRVAL(field);
|
||||
char *end = ch + Z_STRLEN(field);
|
||||
int escaped = 0;
|
||||
|
||||
smart_str_appendc(&csvline, enclosure);
|
||||
while (ch < end) {
|
||||
if (*ch == escape_char) {
|
||||
escaped = 1;
|
||||
} else if (!escaped && *ch == enclosure) {
|
||||
if (*ch == enclosure) {
|
||||
smart_str_appendc(&csvline, enclosure);
|
||||
} else {
|
||||
escaped = 0;
|
||||
}
|
||||
smart_str_appendc(&csvline, *ch);
|
||||
ch++;
|
||||
|
@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n";
|
||||
|
||||
$fp = fopen($file, "r");
|
||||
$res = array();
|
||||
while($l=fgetcsv($fp))
|
||||
while($l=fgetcsv($fp, 0, ',', '"', '"'))
|
||||
{
|
||||
$res[] = join(',',$l);
|
||||
}
|
||||
@ -75,10 +75,10 @@ $list = array (
|
||||
13 => 'aaa,"""bbb """',
|
||||
14 => '"aaa""aaa""","""bbb""bbb"',
|
||||
15 => '"aaa""aaa""""""",bbb',
|
||||
16 => 'aaa,"""\\"bbb",ccc',
|
||||
17 => '"aaa""\\"a""","""bbb"""',
|
||||
18 => '"""\\"""","""aaa"""',
|
||||
19 => '"""\\"""""",aaa',
|
||||
16 => 'aaa,"""\\""bbb",ccc',
|
||||
17 => '"aaa""\\""a""","""bbb"""',
|
||||
18 => '"""\\""""","""aaa"""',
|
||||
19 => '"""\\""""""",aaa',
|
||||
);
|
||||
$list = array (
|
||||
0 => 'aaa,bbb',
|
||||
|
20
ext/standard/tests/file/fputcsv_bug43225.phpt
Normal file
20
ext/standard/tests/file/fputcsv_bug43225.phpt
Normal file
@ -0,0 +1,20 @@
|
||||
--TEST--
|
||||
fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed by ")
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$row = array(
|
||||
'a\\"',
|
||||
'bbb',
|
||||
);
|
||||
|
||||
$file = dirname(__FILE__) . 'fgetcsv_bug43225.csv';
|
||||
$fp = fopen($file, 'w');
|
||||
fputcsv($fp, $row);
|
||||
fclose($fp);
|
||||
readfile($file);
|
||||
unlink($file);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
"a\""",bbb
|
Loading…
Reference in New Issue
Block a user