xref: /PHP-8.3/ext/spl/tests/bug69181.phpt (revision 5d52d472)
1--TEST--
2Bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields)
3--FILE--
4<?php
5$filename = __DIR__ . "/bug69181.csv";
6$csv = <<<CSV
7"foo\n\nbar\nbaz",qux
8
9"foo\nbar\nbaz",qux
10CSV;
11
12file_put_contents($filename, $csv);
13
14$file = new SplFileObject($filename);
15$file->setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE | SplFileObject::READ_CSV);
16var_dump(iterator_to_array($file));
17
18echo "\n====\n\n";
19
20$file->rewind();
21while (($record = $file->fgetcsv())) {
22  var_dump($record);
23}
24?>
25--EXPECT--
26array(2) {
27  [0]=>
28  array(2) {
29    [0]=>
30    string(12) "foo
31
32bar
33baz"
34    [1]=>
35    string(3) "qux"
36  }
37  [2]=>
38  array(2) {
39    [0]=>
40    string(11) "foo
41bar
42baz"
43    [1]=>
44    string(3) "qux"
45  }
46}
47
48====
49
50array(2) {
51  [0]=>
52  string(12) "foo
53
54bar
55baz"
56  [1]=>
57  string(3) "qux"
58}
59array(2) {
60  [0]=>
61  string(11) "foo
62bar
63baz"
64  [1]=>
65  string(3) "qux"
66}
67--CLEAN--
68<?php
69@unlink(__DIR__ . "/bug69181.csv");
70?>
71