1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt
Nikita Popov 625d8463a4 Consistent error handling for fgetcsv/fputcsv
Normalize the behavior between the file functions and those on
SplFileObject.

Be consistent about throwing regardless of whether the delimiter etc
is empty or has too many characters. I don't think it's worthwhile
to distinguish these cases.

Back when we looked into this originally, there was some hope that
we might want to add support for multiple-character delimiter etc,
but after a cursory look, I really don't think this is going to
happen (for fputcsv maybe, but for fgetcsv this just makes an already
broken function much more complicated.)

Closes GH-6188.
2020-09-23 10:11:04 +02:00

32 lines
893 B
PHP

--TEST--
Test fputcsv() : usage variations - with enclosure & delimiter of two chars
--FILE--
<?php
/* Testing fputcsv() to write to a file when default enclosure value and delimiter
of two chars is provided and file is opened in read only mode */
echo "*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***\n";
$fo = new SplFileObject(__DIR__ . '/SplFileObject_fputcsv_variation14.csv', 'w');
try {
var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '""'));
} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
unset($fo);
echo "Done\n";
?>
--CLEAN--
<?php
$file = __DIR__ . '/SplFileObject_fputcsv_variation14.csv';
unlink($file);
?>
--EXPECT--
*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***
SplFileObject::fputcsv(): Argument #3 ($enclosure) must be a single character
Done