]> granicus.if.org Git - php/commitdiff
New testcases for fgetcsv() function
authorRaghubansh Kumar <kraghuba@php.net>
Wed, 8 Aug 2007 13:15:01 +0000 (13:15 +0000)
committerRaghubansh Kumar <kraghuba@php.net>
Wed, 8 Aug 2007 13:15:01 +0000 (13:15 +0000)
32 files changed:
ext/standard/tests/file/fgetcsv_error.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation1.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation10.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation11.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation12.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation13.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation14.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation15.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation16.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation17.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation18.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation19.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation2.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation20.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation21.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation22.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation23.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation24.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation25.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation26.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation27.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation28.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation29.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation3.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation30.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation31.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation4.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation5.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation6.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation7.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation8.phpt [new file with mode: 0644]
ext/standard/tests/file/fgetcsv_variation9.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/file/fgetcsv_error.phpt b/ext/standard/tests/file/fgetcsv_error.phpt
new file mode 100644 (file)
index 0000000..d289431
--- /dev/null
@@ -0,0 +1,151 @@
+--TEST--
+Test fgetcsv() function : error conditions
+--FILE--
+<?php
+/*
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure, string $escape]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+echo "*** Testing error conditions ***\n";
+// zero argument
+echo "-- Testing fgetcsv() with zero argument --\n";
+var_dump( fgetcsv() );
+
+// more than expected no. of args
+echo "-- Testing fgetcsv() with more than expected number of arguments --\n";
+$fp = fopen(__FILE__, "r");
+$len = 1024;
+$delim = ";";
+$enclosure ="\"";
+$escape = "\\";
+var_dump( fgetcsv($fp, $len, $delim, $enclosure, $escape, $len ) );
+fclose($fp);
+
+// test invalid arguments : non-resources
+echo "-- Testing fgetcsv() with invalid arguments --\n";
+$invalid_args = array (
+  "string",
+  10,
+  10.5,
+  true,
+  array(1,2,3),
+  new stdclass,
+);
+/* loop to test fgetcsv() with different invalid type of args */
+for($loop_counter = 1; $loop_counter <= count($invalid_args); $loop_counter++) {
+  echo "-- Iteration $loop_counter --\n";
+  var_dump( fgetcsv($invalid_args[$loop_counter - 1]) ); // with default args
+  var_dump( fgetcsv($invalid_args[$loop_counter - 1], $len, $delim, $enclosure) ); // all args specified
+}
+
+echo "Done\n";
+--EXPECTF--
+*** Testing error conditions ***
+-- Testing fgetcsv() with zero argument --
+
+Warning: fgetcsv() expects at least 1 parameter, 0 given in %s on line %d
+NULL
+-- Testing fgetcsv() with more than expected number of arguments --
+
+Warning: fgetcsv() expects at most 5 parameters, 6 given in %s on line %d
+NULL
+-- Testing fgetcsv() with invalid arguments --
+-- Iteration 1 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, string given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, string given in %s on line %d
+NULL
+-- Iteration 2 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, integer given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, integer given in %s on line %d
+NULL
+-- Iteration 3 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, double given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, double given in %s on line %d
+NULL
+-- Iteration 4 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, boolean given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, boolean given in %s on line %d
+NULL
+-- Iteration 5 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, array given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, array given in %s on line %d
+NULL
+-- Iteration 6 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, object given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, object given in %s on line %d
+NULL
+Done
+
+--UEXPECTF--
+*** Testing error conditions ***
+-- Testing fgetcsv() with zero argument --
+
+Warning: fgetcsv() expects at least 1 parameter, 0 given in %s on line %d
+NULL
+-- Testing fgetcsv() with more than expected number of arguments --
+
+Warning: fgetcsv() expects at most 5 parameters, 6 given in %s on line %d
+NULL
+-- Testing fgetcsv() with invalid arguments --
+-- Iteration 1 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, Unicode string given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, Unicode string given in %s on line %d
+NULL
+-- Iteration 2 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, integer given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, integer given in %s on line %d
+NULL
+-- Iteration 3 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, double given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, double given in %s on line %d
+NULL
+-- Iteration 4 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, boolean given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, boolean given in %s on line %d
+NULL
+-- Iteration 5 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, array given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, array given in %s on line %d
+NULL
+-- Iteration 6 --
+
+Warning: fgetcsv() expects parameter 1 to be resource, object given in %s on line %d
+NULL
+
+Warning: fgetcsv() expects parameter 1 to be resource, object given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation1.phpt b/ext/standard/tests/file/fgetcsv_variation1.phpt
new file mode 100644 (file)
index 0000000..296bf9e
--- /dev/null
@@ -0,0 +1,2736 @@
+--TEST--
+Test fgetcsv() : usage variations - with all parameters specified (Bug #42163)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a file when all its parameters are provided */
+
+echo "*** Testing fgetcsv() : with all parameters specified ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation1.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use the right delimiter and enclosure with max length 
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with all parameters specified ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with all parameters specified ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  unicode(11) "water-fruit"
+  [1]=>
+  unicode(3) "air"
+  [2]=>
+  unicode(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  unicode(11) "water-fruit"
+  [1]=>
+  unicode(3) "air"
+  [2]=>
+  unicode(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  unicode(11) "water-fruit"
+  [1]=>
+  unicode(3) "air"
+  [2]=>
+  unicode(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  unicode(11) "water-fruit"
+  [1]=>
+  unicode(3) "air"
+  [2]=>
+  unicode(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  unicode(11) "water-fruit"
+  [1]=>
+  unicode(3) "air"
+  [2]=>
+  unicode(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation10.phpt b/ext/standard/tests/file/fgetcsv_variation10.phpt
new file mode 100644 (file)
index 0000000..c0580e9
--- /dev/null
@@ -0,0 +1,2499 @@
+--TEST--
+Test fgetcsv() : usage variations - file pointer pointing to EOF (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() by reading from a file when the file pointer is pointing to end of file */
+
+echo "*** Testing fgetcsv() : with file pointer pointing to EOF ***\n";
+
+/* the array is with  three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation10.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } 
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // set the file pointer to EOF 
+    var_dump( fseek($file_handle, 0, SEEK_END) );      
+
+    // call fgetcsv() to parse csv fields
+
+    // now file pointer should point to end of the file, try reading again 
+    var_dump( feof($file_handle) );
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enclosure) ); 
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    var_dump( fgetcsv($file_handle) ); // with default args 
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with file pointer pointing to EOF ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with file pointer pointing to EOF ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+bool(false)
+int(55)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+bool(false)
+int(59)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+bool(false)
+int(63)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+bool(false)
+int(65)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+bool(false)
+int(%d)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation11.phpt b/ext/standard/tests/file/fgetcsv_variation11.phpt
new file mode 100644 (file)
index 0000000..eaa8442
--- /dev/null
@@ -0,0 +1,3579 @@
+--TEST--
+Test fgetcsv() : usage variations - with different enclosure but same delimiter
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() by reading from a file when different enclosure that is not 
+   present in the data being read and delimiter which is present in the data  */
+
+echo "*** Testing fgetcsv() : with different enclosure but same delimiter char ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation11.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+
+    // use different delimiter but same enclosure char
+    fseek($file_handle, 0, SEEK_SET);
+    $enc = "+";
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enc) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with different enclosure but same delimiter char ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with different enclosure but same delimiter char ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) ""water""
+  [1]=>
+  string(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(7) ""water""
+  [1]=>
+  unicode(7) ""fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(7) "^water^"
+  [1]=>
+  unicode(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "^water^"
+  [1]=>
+  unicode(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "^water^"
+  [1]=>
+  unicode(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "^water^"
+  [1]=>
+  unicode(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) "^water^"
+  [1]=>
+  string(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "^water^"
+  [1]=>
+  unicode(7) "^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(7) "&water&"
+  [1]=>
+  unicode(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "&water&"
+  [1]=>
+  unicode(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "&water&"
+  [1]=>
+  unicode(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "&water&"
+  [1]=>
+  unicode(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(7) "&water&"
+  [1]=>
+  string(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(7) "&water&"
+  [1]=>
+  unicode(7) "&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(5) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(5) "fruit"
+  [4]=>
+  unicode(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(5) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(5) "fruit"
+  [4]=>
+  unicode(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(5) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(5) "fruit"
+  [4]=>
+  unicode(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(5) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(5) "fruit"
+  [4]=>
+  unicode(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(5) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(5) "fruit"
+  [4]=>
+  string(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(5) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(5) "fruit"
+  [4]=>
+  unicode(3) "air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(9) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  unicode(0) ""
+  [7]=>
+  unicode(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(9) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  unicode(0) ""
+  [7]=>
+  unicode(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(9) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  unicode(0) ""
+  [7]=>
+  unicode(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(9) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  unicode(0) ""
+  [7]=>
+  unicode(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(9) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(5) "water"
+  [2]=>
+  string(0) ""
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(5) "fruit"
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+  [7]=>
+  string(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(9) {
+  [0]=>
+  unicode(0) ""
+  [1]=>
+  unicode(5) "water"
+  [2]=>
+  unicode(0) ""
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(5) "fruit"
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  unicode(0) ""
+  [7]=>
+  unicode(3) "air"
+  [8]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  unicode(6) "&""""&"
+  [1]=>
+  unicode(3) "&"&"
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(3) "&,&"
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  unicode(6) "&""""&"
+  [1]=>
+  unicode(3) "&"&"
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(3) "&,&"
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  unicode(6) "&""""&"
+  [1]=>
+  unicode(3) "&"&"
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(3) "&,&"
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  unicode(6) "&""""&"
+  [1]=>
+  unicode(3) "&"&"
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(3) "&,&"
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(6) "&""""&"
+  [1]=>
+  string(3) "&"&"
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(3) "&,&"
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  unicode(6) "&""""&"
+  [1]=>
+  unicode(3) "&"&"
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(3) "&,&"
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(false)
+Done
\ No newline at end of file
diff --git a/ext/standard/tests/file/fgetcsv_variation12.phpt b/ext/standard/tests/file/fgetcsv_variation12.phpt
new file mode 100644 (file)
index 0000000..90dd303
--- /dev/null
@@ -0,0 +1,1824 @@
+--TEST--
+Test fgetcsv() : usage variations - two chars as enclosure & delimiter (various read and append modes) 
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() by providing two characters for enclosure and delimiter parameters */
+
+echo "*** Testing fgetcsv() : with two chars as enclosure & delimiter ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation12.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t");
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use delimiter & enclosure char of two chars 
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "++";
+    $enc = "%%";
+    var_dump( fgetcsv($file_handle, 1024, $del, $enc) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with two chars as enclosure & delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with two chars as enclosure & delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation13.phpt b/ext/standard/tests/file/fgetcsv_variation13.phpt
new file mode 100644 (file)
index 0000000..c765984
--- /dev/null
@@ -0,0 +1,315 @@
+--TEST--
+Test fgetcsv() : usage variations - with line without any csv fields
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a line from a file which doesn't have any CSV field */
+
+echo "*** Testing fgetcsv() : reading the line which is without csv fields ***\n";
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation13.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    // write line of text with no csv field and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+     
+    // read the line which is without csv fields, provide delimiter and see the working of fgetcsv
+    $fp_pos = ftell($file_handle);
+    var_dump( fgetcsv($file_handle, 1024) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : reading the line which is without csv fields ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : reading the line which is without csv fields ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation14.phpt b/ext/standard/tests/file/fgetcsv_variation14.phpt
new file mode 100644 (file)
index 0000000..ec111ea
--- /dev/null
@@ -0,0 +1,314 @@
+--TEST--
+Test fgetcsv() : usage variations - reading the blank line (Bug #42228)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() by reading a file containing a blank line */
+
+echo "*** Testing fgetcsv() : reading the blank line ***\n";
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation14.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // read the next line which is a blank line to see the working of fgetcsv
+    $fp_pos = ftell($file_handle);
+    var_dump( fgetcsv($file_handle, 1024) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : reading the blank line ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : reading the blank line ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation15.phpt b/ext/standard/tests/file/fgetcsv_variation15.phpt
new file mode 100644 (file)
index 0000000..bbc1180
--- /dev/null
@@ -0,0 +1,1799 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure (Bug #42167)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a file when provided with default enclosure character */
+
+echo "*** Testing fgetcsv() : with default enclosure ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation15.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    var_dump( fgetcsv($file_handle, 1024, $delimiter) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation16.phpt b/ext/standard/tests/file/fgetcsv_variation16.phpt
new file mode 100644 (file)
index 0000000..d3ba4cc
--- /dev/null
@@ -0,0 +1,1803 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure & length as 0 (Bug #42219)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a file when provided with default enclosure character 
+   and length value equal to zero  
+*/
+
+echo "*** Testing fgetcsv() : with default enclosure & length as 0 ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation16.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use length as 0 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 0, $delimiter) );  
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure & length as 0 ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure & length as 0 ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation17.phpt b/ext/standard/tests/file/fgetcsv_variation17.phpt
new file mode 100644 (file)
index 0000000..c990173
--- /dev/null
@@ -0,0 +1,3039 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure & length less than line size (Bug #42219)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a file when provided with default enclosure character
+   and length value less than the size of line being read
+ */
+
+echo "*** Testing fgetcsv() : with default enclosure & length less than line size ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation17.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use length as less than the actual size of the line 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 9, $delimiter) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // read rest of the line 
+    var_dump( fgetcsv($file_handle, 1024, $delimiter) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure & length less than line size ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure & length less than line size ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(3) "fru"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(2) "it"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(3) "air"
+}
+int(20)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(60)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+  [2]=>
+  string(43) ""
+This is line of text without csv fields
+
+"
+}
+int(61)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation18.phpt b/ext/standard/tests/file/fgetcsv_variation18.phpt
new file mode 100644 (file)
index 0000000..17d9d3a
--- /dev/null
@@ -0,0 +1,2498 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure and different delimiter (Bug #42163)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read a file when provided with default enclosure character 
+   and with delimiter character which is not in the line being read by fgetcsv()
+*/
+
+echo "*** Testing fgetcsv() : with default enclosure and different delimiter ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation18.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use different delimiter than existing in file 
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "+";
+    var_dump( fgetcsv($file_handle, 1024, $del) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure and different delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+*** Testing fgetcsv() : with default enclosure and different delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure and different delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+*** Testing fgetcsv() : with default enclosure and different delimiter ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation19.phpt b/ext/standard/tests/file/fgetcsv_variation19.phpt
new file mode 100644 (file)
index 0000000..42b256d
--- /dev/null
@@ -0,0 +1,3099 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure & delimiter of two chars (Bug #42163)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read a file when provided with default enclosure character 
+   and with delimiter of two characters 
+*/
+
+echo "*** Testing fgetcsv() : with default enclosure & delimiter of two chars ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation19.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use delimiter & enclosure char of two chars 
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "++";
+    var_dump( fgetcsv($file_handle, 1024, $del) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+     
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with default enclosure & delimiter of two chars ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+*** Testing fgetcsv() : with default enclosure & delimiter of two chars ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with default enclosure & delimiter of two chars ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
+*** Testing fgetcsv() : with default enclosure & delimiter of two chars ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water,fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(11) "water fruit"
+}
+int(12)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) "water "fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(19) "water\"fruit"\"air""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "water\"fruit"\""""
+}
+int(20)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation2.phpt b/ext/standard/tests/file/fgetcsv_variation2.phpt
new file mode 100644 (file)
index 0000000..f7af4c1
--- /dev/null
@@ -0,0 +1,2717 @@
+--TEST--
+Test fgetcsv() : usage variations - with length as 0 (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to rwad from a file with length argument equal to zero */
+
+echo "*** Testing fgetcsv() : with length as 0 ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation2.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use length as 0 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 0, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with length as 0 ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with length as 0 ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(12) "wat\0\0\0fruuit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(12) "wat\0\0\0fruuit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(12) "wat\0\0\0fruuit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(12) "wat\0\0\0fruuit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(11) "water=fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(12) "wat\0\0\0fruuit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(0) {
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(0) {
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(0) {
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(0) {
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(0) {
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(11) "wate*浯fruit"
+  [1]=>
+  unicode(43) "aiirThis is line of text without csv fields"
+}
+int(62)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "wate*浯fruit"
+  [1]=>
+  unicode(43) "aiirThis is line of text without csv fields"
+}
+int(62)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "wate*浯fruit"
+  [1]=>
+  unicode(43) "aiirThis is line of text without csv fields"
+}
+int(62)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "wate*浯fruit"
+  [1]=>
+  unicode(43) "aiirThis is line of text without csv fields"
+}
+int(62)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(3) {
+  [0]=>
+  string(11) "water-fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(11) "wate*浯fruit"
+  [1]=>
+  unicode(43) "aiirThis is line of text without csv fields"
+}
+int(62)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  unicode(4) """"""
+  [1]=>
+  unicode(1) """
+  [2]=>
+  unicode(1) ","
+  [3]=>
+  unicode(1) """
+  [4]=>
+  unicode(1) ","
+  [5]=>
+  unicode(4) ",,,,"
+}
+int(24)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation20.phpt b/ext/standard/tests/file/fgetcsv_variation20.phpt
new file mode 100644 (file)
index 0000000..28891ca
--- /dev/null
@@ -0,0 +1,315 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure, line without any csv fields
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+  Testing fgetcsv() to read a line without any csv fields from a file
+  when provided with default enclosure value
+*/
+   
+echo "*** Testing fgetcsv() : with default enclosure, line without any csv fields ***\n";
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation20.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    // write line of text 
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // read the line which is without csv fields, provide delimiter and see the working of fgetcsv
+    $fp_pos = ftell($file_handle);
+    var_dump( fgetcsv($file_handle, 1024) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure, line without any csv fields ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure, line without any csv fields ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(40)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(39) "This is line of text without csv fields"
+}
+int(40)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation21.phpt b/ext/standard/tests/file/fgetcsv_variation21.phpt
new file mode 100644 (file)
index 0000000..c4aeaf0
--- /dev/null
@@ -0,0 +1,315 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure, blank line (Bug #42228)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+  Testing fgetcsv() to read a file containing blank line when provided with 
+  default enclosure argument
+*/
+
+echo "*** Testing fgetcsv() : with default enclosure, blank line ***\n";
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation21.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    // write a blank line
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+     
+    // read the line which is a blank line to see the working of fgetcsv
+    $fp_pos = ftell($file_handle);
+    var_dump( fgetcsv($file_handle, 1024, '+') );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure, blank line ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure, blank line ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+int(1)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation22.phpt b/ext/standard/tests/file/fgetcsv_variation22.phpt
new file mode 100644 (file)
index 0000000..814a6a2
--- /dev/null
@@ -0,0 +1,1143 @@
+--TEST--
+Test fgetcsv() : usage variations - with default enclosure, file pointer pointing at end of file (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read a file whose file pointer is pointing to end of file
+   and fgetcsv() provided with default enclosure argument
+*/
+
+echo "*** Testing fgetcsv() : with default enclosure, file pointer pointing at end of file ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation22.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } 
+     
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+    
+    // set the file pointer to EOF
+    var_dump( fseek($file_handle, 0, SEEK_END) );
+
+    // call fgetcsv() to parse csv fields
+
+    // now file pointer should point to end of the file, try reading again 
+    var_dump( feof($file_handle) );
+    var_dump( fgetcsv($file_handle, 1024, $delimiter) ); // with length, delimiter 
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default enclosure, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default enclosure, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation23.phpt b/ext/standard/tests/file/fgetcsv_variation23.phpt
new file mode 100644 (file)
index 0000000..b766f1e
--- /dev/null
@@ -0,0 +1,48 @@
+--TEST--
+Test fgetcsv() : usage variations - empty file
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read from an empty file */
+
+echo "*** Testing fgetcsv() : reading from file which is having zero content ***\n";
+
+// try reading from file which is having zero content
+// create the file and then open in read mode and try reading 
+$filename = dirname(__FILE__) . '/fgetcsv_variation23.tmp';
+$fp = fopen ($filename, "w");
+fclose($fp);
+$fp = fopen ($filename, "r");
+if (!$fp) {
+  echo "Error: failed to create file $filename!\n";
+  exit();
+}
+var_dump( fgetcsv($fp) );
+var_dump( ftell($fp) );
+var_dump( fgetcsv($fp, 1024) );
+var_dump( ftell($fp) );
+var_dump( fgetcsv($fp, 1024, "+" ) );
+var_dump( ftell($fp) );
+var_dump( fgetcsv($fp, 1024, "+", "%") );
+var_dump( ftell($fp) );
+
+// close and delete the file
+fclose($fp);
+unlink($filename);
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : reading from file which is having zero content ***
+bool(false)
+int(0)
+bool(false)
+int(0)
+bool(false)
+int(0)
+bool(false)
+int(0)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation24.phpt b/ext/standard/tests/file/fgetcsv_variation24.phpt
new file mode 100644 (file)
index 0000000..1b93e00
--- /dev/null
@@ -0,0 +1,1251 @@
+--TEST--
+Test fgetcsv() : usage variations - two chars as enclosure & delimiter (various write modes)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read from a file opened in various write modes and 
+   enclosure argument with two characters
+*/
+
+echo "*** Testing fgetcsv() : with two chars as enclosure & delimiter ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation24.tmp';
+@unlink($filename);
+
+$file_modes = array ("w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t");
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use delimiter & enclosure char of two chars 
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "++";
+    $enc = "%%";
+    var_dump( fgetcsv($file_handle, 1024, $del, $enc) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with two chars as enclosure & delimiter ***
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with two chars as enclosure & delimiter ***
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Notice: fgetcsv(): delimiter must be a single character in %s on line %d
+
+Notice: fgetcsv(): enclosure must be a single character in %s on line %d
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation25.phpt b/ext/standard/tests/file/fgetcsv_variation25.phpt
new file mode 100644 (file)
index 0000000..480ac6a
--- /dev/null
@@ -0,0 +1,1779 @@
+--TEST--
+Test fgetcsv() : usage variations - with negative length value along with enclosure and delimiter
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+   Testing fgetcsv() to read from a file when provided with negative length argument 
+   along with delimiter and enclosure arguments
+*/
+echo "*** Testing fgetcsv() : with negative length value ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation25.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use the right delimiter and enclosure with negative length 
+    var_dump( fgetcsv($file_handle, -10, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation26.phpt b/ext/standard/tests/file/fgetcsv_variation26.phpt
new file mode 100644 (file)
index 0000000..f95bc35
--- /dev/null
@@ -0,0 +1,805 @@
+--TEST--
+Test fgetcsv() : usage variations - reading files opened in write only mode 
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read from files opened in write only mode */
+
+echo "*** Testing fgetcsv() : reading the files opened in write only mode ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation26.tmp';
+@unlink($filename);
+
+$file_modes = array ("w", "wb", "wt",
+                     "a", "ab", "at",
+                     "x", "xb", "xt");
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // rewind the file pointer to bof
+      rewind($file_handle);
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use the right delimiter and enclosure with max length 
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : reading the files opened in write only mode ***
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : reading the files opened in write only mode ***
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using wt mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using ab mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using at mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xb mode --
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using xt mode --
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation27.phpt b/ext/standard/tests/file/fgetcsv_variation27.phpt
new file mode 100644 (file)
index 0000000..cf75a3c
--- /dev/null
@@ -0,0 +1,1779 @@
+--TEST--
+Test fgetcsv() : usage variations - with negative length value along with delimiter and no enclosure
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+   Testing fgetcsv() to read from a file when provided with negative length argument 
+   along with delimiter and no enclosure arguments
+*/
+echo "*** Testing fgetcsv() : with negative length value ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation27.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use the right delimiter and enclosure with negative length 
+    var_dump( fgetcsv($file_handle, -10, $delimiter) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation28.phpt b/ext/standard/tests/file/fgetcsv_variation28.phpt
new file mode 100644 (file)
index 0000000..6d32d20
--- /dev/null
@@ -0,0 +1,1779 @@
+--TEST--
+Test fgetcsv() : usage variations - with negative length value along with neither enclosure and nor delimiter
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+   Testing fgetcsv() to read from a file when provided with negative length argument 
+   along with neither delimiter nor enclosure argument
+*/
+echo "*** Testing fgetcsv() : with negative length value ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation28.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use the right delimiter and enclosure with negative length 
+    var_dump( fgetcsv($file_handle, -10) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with negative length value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): Length parameter may not be negative in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation29.phpt b/ext/standard/tests/file/fgetcsv_variation29.phpt
new file mode 100644 (file)
index 0000000..de73551
--- /dev/null
@@ -0,0 +1,1144 @@
+--TEST--
+Test fgetcsv() : usage variations - with only file handle as argument, file pointer pointing at end of file (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read a file whose file pointer is pointing to end of file
+   and fgetcsv() provided with only file handle in its argument
+*/
+
+echo "*** Testing fgetcsv() : with file handle as only argument and file pointer pointing at end of file ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation29.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } 
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // set the file pointer to EOF
+    var_dump( fseek($file_handle, 0, SEEK_END) );
+
+    // call fgetcsv() to parse csv fields
+
+    // now file pointer should point to end of the file, try reading again 
+    var_dump( feof($file_handle) );
+    var_dump( fgetcsv($file_handle) );  
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with file handle as only argument and file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with file handle as only argument and file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation3.phpt b/ext/standard/tests/file/fgetcsv_variation3.phpt
new file mode 100644 (file)
index 0000000..8732cbb
--- /dev/null
@@ -0,0 +1,1777 @@
+--TEST--
+Test fgetcsv() : usage variations - with delimiter as NULL
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read from a file when provided with delimiter value as NULL */
+
+echo "*** Testing fgetcsv() : with delimiter as NULL ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation3.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use length as 0 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 1024, NULL, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with delimiter as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with delimiter as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation30.phpt b/ext/standard/tests/file/fgetcsv_variation30.phpt
new file mode 100644 (file)
index 0000000..c50d4dc
--- /dev/null
@@ -0,0 +1,1143 @@
+--TEST--
+Test fgetcsv() : usage variations - with file handle and length, file pointer pointing at end of file (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read a file whose file pointer is pointing to end of file
+   and fgetcsv() provided with file handle and length arguments
+*/
+
+echo "*** Testing fgetcsv() : with file handle and length arguments, file pointer pointing at end of file ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation30.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } 
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // set the file pointer to EOF
+    var_dump( fseek($file_handle, 0, SEEK_END) );
+    // call fgetcsv() to parse csv fields
+
+    // now file pointer should point to end of the file, try reading again 
+    var_dump( feof($file_handle) );
+    var_dump( fgetcsv($file_handle, 1024) ); 
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with file handle and length arguments, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with file handle and length arguments, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation31.phpt b/ext/standard/tests/file/fgetcsv_variation31.phpt
new file mode 100644 (file)
index 0000000..42a98ec
--- /dev/null
@@ -0,0 +1,1145 @@
+--TEST--
+Test fgetcsv() : usage variations - with length and enclosure, file pointer pointing at end of file (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read a file whose file pointer is pointing to end of file
+   and fgetcsv() provided with enclosure argument
+*/
+
+echo "*** Testing fgetcsv() : with enclosure argument, file pointer pointing at end of file ***\n";
+
+/* the array is with two elements in it. Each element should be read as 
+   1st element is delimiter & 2nd element is csv fields 
+*/
+$csv_lists = array (
+  array(',', 'water,fruit'),
+  array(' ', 'water fruit'),
+  array(' ', '"water" "fruit"'),
+  array('\\', 'water\\"fruit"\\"air"'),
+  array('\\', '"water"\\"fruit"\\"""'),
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation31.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $csv_field = $csv_list[1];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } 
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // set the file pointer to EOF
+    var_dump( fseek($file_handle, 0, SEEK_END) );
+  
+    // call fgetcsv() to parse csv fields
+
+    // now file pointer should point to end of the file, try reading again 
+    var_dump( feof($file_handle) );
+    $enc = 'z';
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enc ) ); // with length, delimiter 
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with enclosure argument, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with enclosure argument, file pointer pointing at end of file ***
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(53)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(57)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+int(0)
+bool(true)
+bool(false)
+int(61)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation4.phpt b/ext/standard/tests/file/fgetcsv_variation4.phpt
new file mode 100644 (file)
index 0000000..09afdd5
--- /dev/null
@@ -0,0 +1,1776 @@
+--TEST--
+Test fgetcsv() : usage variations - with enclosure as NULL
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read from a file when provided with enclosure value as NULL */
+
+echo "*** Testing fgetcsv() : with enclosure as NULL ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation4.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use length as 0 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 0, $delimiter, NULL) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with enclosure as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with enclosure as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): enclosure must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation5.phpt b/ext/standard/tests/file/fgetcsv_variation5.phpt
new file mode 100644 (file)
index 0000000..6a94836
--- /dev/null
@@ -0,0 +1,1778 @@
+--TEST--
+Test fgetcsv() : usage variations - with delimiter & enclosure as NULL
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/*
+   Testing fgetcsv() to read from a file when provided with delimiter and 
+   enclosure values both as NULL
+ */
+
+echo "*** Testing fgetcsv() : with delimiter & enclosure as NULL ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation5.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 1024, NULL, NULL) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with delimiter & enclosure as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with delimiter & enclosure as NULL ***
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+
+Warning: fgetcsv(): delimiter must be a character in %s on line %d
+bool(false)
+int(0)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation6.phpt b/ext/standard/tests/file/fgetcsv_variation6.phpt
new file mode 100644 (file)
index 0000000..88cf680
--- /dev/null
@@ -0,0 +1,4604 @@
+--TEST--
+Test fgetcsv() : usage variations - with length less than line size (Bug #42219)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+  Testing fgetcsv() to read from a file when provided with the length argument
+  value less than the line size
+*/
+
+echo "*** Testing fgetcsv() : with length less than line size ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation6.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use length as less than the actual size of the line 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle, 9, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+    // read rest of the line
+    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with length less than line size ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with length less than line size ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(1) "f"
+}
+int(9)
+bool(false)
+array(1) {
+  [0]=>
+  string(4) "ruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(8) {
+  [0]=>
+  string(4) "This"
+  [1]=>
+  string(2) "is"
+  [2]=>
+  string(4) "line"
+  [3]=>
+  string(2) "of"
+  [4]=>
+  string(4) "text"
+  [5]=>
+  string(7) "without"
+  [6]=>
+  string(3) "csv"
+  [7]=>
+  string(6) "fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(56)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(6) "water="
+}
+int(9)
+bool(false)
+array(2) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(0) ""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(58)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(6) "water-"
+}
+int(9)
+bool(false)
+array(3) {
+  [0]=>
+  string(5) "fruit"
+  [1]=>
+  string(3) "air"
+  [2]=>
+  string(0) ""
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(6) {
+  [0]=>
+  string(4) """"""
+  [1]=>
+  string(1) """
+  [2]=>
+  string(1) ","
+  [3]=>
+  string(1) """
+  [4]=>
+  string(1) ","
+  [5]=>
+  string(4) ",,,,"
+}
+int(24)
+bool(false)
+array(1) {
+  [0]=>
+  string(39) "This is line of text without csv fields"
+}
+int(64)
+bool(false)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation7.phpt b/ext/standard/tests/file/fgetcsv_variation7.phpt
new file mode 100644 (file)
index 0000000..3aed2e4
--- /dev/null
@@ -0,0 +1,2496 @@
+--TEST--
+Test fgetcsv() : usage variations - with default arguments value (Bug #42175)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* Testing fgetcsv() to read from a file when provided with default value of arguments */
+
+echo "*** Testing fgetcsv() : with default arguments value ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation7.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use only default arguments 
+    fseek($file_handle, 0, SEEK_SET);
+    var_dump( fgetcsv($file_handle) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with default arguments value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with default arguments value ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(14)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(2) {
+  [0]=>
+  string(5) "water"
+  [1]=>
+  string(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(2) {
+  [0]=>
+  unicode(5) "water"
+  [1]=>
+  unicode(5) "fruit"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(7) {
+  [0]=>
+  unicode(11) "&""""&:&"&:"
+  [1]=>
+  unicode(4) ":":&"
+  [2]=>
+  unicode(2) "&:"
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(0) ""
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(7) {
+  [0]=>
+  unicode(11) "&""""&:&"&:"
+  [1]=>
+  unicode(4) ":":&"
+  [2]=>
+  unicode(2) "&:"
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(0) ""
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(7) {
+  [0]=>
+  unicode(11) "&""""&:&"&:"
+  [1]=>
+  unicode(4) ":":&"
+  [2]=>
+  unicode(2) "&:"
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(0) ""
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(7) {
+  [0]=>
+  unicode(11) "&""""&:&"&:"
+  [1]=>
+  unicode(4) ":":&"
+  [2]=>
+  unicode(2) "&:"
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(0) ""
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(7) {
+  [0]=>
+  string(11) "&""""&:&"&:"
+  [1]=>
+  string(4) ":":&"
+  [2]=>
+  string(2) "&:"
+  [3]=>
+  string(0) ""
+  [4]=>
+  string(0) ""
+  [5]=>
+  string(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(7) {
+  [0]=>
+  unicode(11) "&""""&:&"&:"
+  [1]=>
+  unicode(4) ":":&"
+  [2]=>
+  unicode(2) "&:"
+  [3]=>
+  unicode(0) ""
+  [4]=>
+  unicode(0) ""
+  [5]=>
+  unicode(0) ""
+  [6]=>
+  string(0) ""
+}
+int(24)
+bool(true)
+Done
diff --git a/ext/standard/tests/file/fgetcsv_variation8.phpt b/ext/standard/tests/file/fgetcsv_variation8.phpt
new file mode 100644 (file)
index 0000000..8c23917
--- /dev/null
@@ -0,0 +1,2022 @@
+--TEST--
+Test fgetcsv() : usage variations - with different delimiter and enclosure
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+  Testing fgetcsv() to read from a file when provided with values of delimiter and
+  enclosure that are not present in the line read by fgetcsv()
+*/
+
+echo "*** Testing fgetcsv() : with different delimiter and enclosure ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation8.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blank line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+
+    // use different delimiter and enclosure than existing in file 
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "+";
+    $enc = "%";
+    var_dump( fgetcsv($file_handle, 1024, $del, $enc) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+      
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECT--
+*** Testing fgetcsv() : with different delimiter and enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECT--
+*** Testing fgetcsv() : with different delimiter and enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(13) ""water",fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) ""water","fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "^water^ ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "&water&:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(15) "=water===fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(17) "-water--fruit-air"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(21) "-water---fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(23) "&""""&:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
\ No newline at end of file
diff --git a/ext/standard/tests/file/fgetcsv_variation9.phpt b/ext/standard/tests/file/fgetcsv_variation9.phpt
new file mode 100644 (file)
index 0000000..26b69e7
--- /dev/null
@@ -0,0 +1,2020 @@
+--TEST--
+Test fgetcsv() : usage variations - with different delimiter but same enclosure (Bug #42163)
+--FILE--
+<?php
+/* 
+ Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
+ Description: Gets line from file pointer and parse for CSV fields
+*/
+
+/* 
+   Testing fgetcsv() to read from a file when the delimiter argument value is not
+   present in the line being read by the fgetcsv()
+*/
+
+echo "*** Testing fgetcsv() : with different delimiter but same enclosure ***\n";
+
+/* the array is with three elements in it. Each element should be read as 
+   1st element is delimiter, 2nd element is enclosure 
+   and 3rd element is csv fields
+*/
+$csv_lists = array (
+  array(',', '"', '"water",fruit'),
+  array(',', '"', '"water","fruit"'),
+  array(' ', '^', '^water^ ^fruit^'),
+  array(':', '&', '&water&:&fruit&'),
+  array('=', '=', '=water===fruit='),
+  array('-', '-', '-water--fruit-air'),
+  array('-', '-', '-water---fruit---air-'),
+  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
+);
+
+$filename = dirname(__FILE__) . '/fgetcsv_variation9.tmp';
+@unlink($filename);
+
+$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
+                     "a+", "a+b", "a+t",
+                     "w+", "w+b", "w+t",
+                     "x+", "x+b", "x+t"); 
+
+$loop_counter = 1;
+foreach ($csv_lists as $csv_list) {
+  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
+    // create the file and add the content with has csv fields
+    if ( strstr($file_modes[$mode_counter], "r") ) {
+      $file_handle = fopen($filename, "w");
+    } else {
+      $file_handle = fopen($filename, $file_modes[$mode_counter] );
+    }
+    if ( !$file_handle ) {
+      echo "Error: failed to create file $filename!\n";
+      exit();
+    }
+    $delimiter = $csv_list[0];
+    $enclosure = $csv_list[1];
+    $csv_field = $csv_list[2];
+    @fwrite($file_handle, $csv_field . "\n");
+    // write another line of text and a blank line
+    // this will be used to test, if the fgetcsv() read more than a line and its
+    // working when only a blan line is read
+    @fwrite($file_handle, "This is line of text without csv fields\n");
+    @fwrite($file_handle, "\n"); // blank line
+
+    // close the file if the mode to be used is read mode  and re-open using read mode
+    // else rewind the file pointer to begining of the file 
+    if ( strstr($file_modes[$mode_counter], "r" ) ) {
+      fclose($file_handle);
+      $file_handle = fopen($filename, $file_modes[$mode_counter]);
+    } else {
+      // rewind the file pointer to bof
+      rewind($file_handle);
+    }
+      
+    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
+
+    // call fgetcsv() to parse csv fields
+      
+    // use different delimiter but same enclosure char
+    fseek($file_handle, 0, SEEK_SET);
+    $del = "+";
+    var_dump( fgetcsv($file_handle, 1024, $del, $enclosure) );
+    // check the file pointer position and if eof
+    var_dump( ftell($file_handle) );
+    var_dump( feof($file_handle) );
+
+    // close the file
+    fclose($file_handle);
+    //delete file
+    unlink($filename);
+  } //end of mode loop 
+} // end of foreach
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing fgetcsv() : with different delimiter but same enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  string(%d) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  string(%d) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  string(%d) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  string(%d) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  string(%d) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done
+
+--UEXPECTF--
+*** Testing fgetcsv() : with different delimiter but same enclosure ***
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(11) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,fruit"
+}
+int(14)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water,"fruit""
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water ^fruit^"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(13) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water:&fruit&"
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(12) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water=fruit="
+}
+int(16)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(14) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruitair"
+}
+int(18)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(18) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) "water-fruit---air-"
+}
+int(22)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rb mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using rt mode --
+array(1) {
+  [0]=>
+  unicode(%d) """ࣼग़:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using r+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) """૸ग़:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using a+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) """૸ग़:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using w+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) """૸ग़:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+ mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+b mode --
+array(1) {
+  [0]=>
+  string(21) """"":&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+
+-- Testing fgetcsv() with file opened using x+t mode --
+array(1) {
+  [0]=>
+  unicode(%d) """૸ग़:&"&:,:":&,&:,,,,"
+}
+int(24)
+bool(false)
+Done