diff options
author | Adam Harvey <aharvey@php.net> | 2010-11-09 15:07:50 +0000 |
---|---|---|
committer | Adam Harvey <aharvey@php.net> | 2010-11-09 15:07:50 +0000 |
commit | 6cb7ea4089b07e49defe4dd98c0b75124e93fd19 (patch) | |
tree | 3fa40dee6940825c9f96f2dd58696c5d372a54ce /ext/spl | |
parent | 150a741fee1fee325be80c12c34ee47c55a6b79c (diff) | |
download | php-git-6cb7ea4089b07e49defe4dd98c0b75124e93fd19.tar.gz |
Implemented FR #53264 (Add fputcsv method to SplFileObject).
Diffstat (limited to 'ext/spl')
-rwxr-xr-x | ext/spl/spl_directory.c | 44 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv.phpt | 105 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_002.phpt | 41 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_error.phpt | 30 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation1.phpt | 826 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation10.phpt | 327 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation11.phpt | 826 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation12.phpt | 827 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation13.phpt | 28 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation14.phpt | 28 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation5.phpt | 826 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation6.phpt | 829 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation7.phpt | 829 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_fputcsv_variation8.phpt | 829 |
14 files changed, 6395 insertions, 0 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 0d6cfa269e..e80d52323c 100755 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -2310,6 +2310,43 @@ SPL_METHOD(SplFileObject, fgetcsv) } /* }}} */ +/* {{{ proto int SplFileObject::fputcsv(array fields, [string delimiter [, string enclosure]]) + Output a field array as a CSV line */ +SPL_METHOD(SplFileObject, fputcsv) +{ + spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + char delimiter = intern->u.file.delimiter, enclosure = intern->u.file.enclosure, escape = intern->u.file.escape; + char *delim = NULL, *enclo = NULL; + int d_len = 0, e_len = 0, ret; + zval *fields = NULL; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|ss", &fields, &delim, &d_len, &enclo, &e_len) == SUCCESS) { + switch(ZEND_NUM_ARGS()) + { + case 3: + if (e_len != 1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "enclosure must be a character"); + RETURN_FALSE; + } + enclosure = enclo[0]; + /* no break */ + case 2: + if (d_len != 1) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "delimiter must be a character"); + RETURN_FALSE; + } + delimiter = delim[0]; + /* no break */ + case 1: + case 0: + break; + } + ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape TSRMLS_CC); + RETURN_LONG(ret); + } +} +/* }}} */ + /* {{{ proto void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"' [, string escape = '\\']]]) Set the delimiter and enclosure character used in fgetcsv */ SPL_METHOD(SplFileObject, setCsvControl) @@ -2585,6 +2622,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetcsv, 0, 0, 0) ZEND_ARG_INFO(0, enclosure) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fputcsv, 0, 0, 1) + ZEND_ARG_INFO(0, fields) + ZEND_ARG_INFO(0, delimiter) + ZEND_ARG_INFO(0, enclosure) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_flock, 0, 0, 1) ZEND_ARG_INFO(0, operation) ZEND_ARG_INFO(1, wouldblock) @@ -2623,6 +2666,7 @@ static const zend_function_entry spl_SplFileObject_functions[] = { SPL_ME(SplFileObject, valid, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC) SPL_ME(SplFileObject, fgets, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC) SPL_ME(SplFileObject, fgetcsv, arginfo_file_object_fgetcsv, ZEND_ACC_PUBLIC) + SPL_ME(SplFileObject, fputcsv, arginfo_file_object_fputcsv, ZEND_ACC_PUBLIC) SPL_ME(SplFileObject, setCsvControl, arginfo_file_object_fgetcsv, ZEND_ACC_PUBLIC) SPL_ME(SplFileObject, getCsvControl, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC) SPL_ME(SplFileObject, flock, arginfo_file_object_flock, ZEND_ACC_PUBLIC) diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt b/ext/spl/tests/SplFileObject_fputcsv.phpt new file mode 100644 index 0000000000..d70c304d96 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv.phpt @@ -0,0 +1,105 @@ +--TEST-- +SplFileObject::fputcsv(): functionality tests +--FILE-- +<?php +$file = 'SplFileObject::fputcsv.csv'; +$fo = new SplFileObject($file, 'w'); + +$list = array ( + 0 => 'aaa,bbb', + 1 => 'aaa,"bbb"', + 2 => '"aaa","bbb"', + 3 => 'aaa,bbb', + 4 => '"aaa",bbb', + 5 => '"aaa", "bbb"', + 6 => ',', + 7 => 'aaa,', + 8 => ',"aaa"', + 9 => '"",""', + 10 => '"""""",', + 11 => '""""",aaa', + 12 => 'aaa,bbb ', + 13 => 'aaa,"bbb "', + 14 => 'aaa"aaa","bbb"bbb', + 15 => 'aaa"aaa""",bbb', + 16 => 'aaa,"\\"bbb,ccc', + 17 => 'aaa"\\"a","bbb"', + 18 => '"\\"","aaa"', + 19 => '"\\""",aaa', +); + +foreach ($list as $v) { + $fo->fputcsv(explode(',', $v)); +} +unset($fo); + +$res = file($file); +foreach($res as &$val) +{ + $val = substr($val, 0, -1); +} +echo '$list = ';var_export($res);echo ";\n"; + +$fp = fopen($file, "r"); +$res = array(); +while($l=fgetcsv($fp)) +{ + $res[] = join(',',$l); +} +fclose($fp); + +echo '$list = ';var_export($res);echo ";\n"; + +?> +===DONE=== +<?php exit(0); ?> +--CLEAN-- +<?php +unlink($file); +?> +--EXPECT-- +$list = array ( + 0 => 'aaa,bbb', + 1 => 'aaa,"""bbb"""', + 2 => '"""aaa""","""bbb"""', + 3 => 'aaa,bbb', + 4 => '"""aaa""",bbb', + 5 => '"""aaa"""," ""bbb"""', + 6 => ',', + 7 => 'aaa,', + 8 => ',"""aaa"""', + 9 => '"""""",""""""', + 10 => '"""""""""""""",', + 11 => '"""""""""""",aaa', + 12 => 'aaa,"bbb "', + 13 => 'aaa,"""bbb """', + 14 => '"aaa""aaa""","""bbb""bbb"', + 15 => '"aaa""aaa""""""",bbb', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\"""","""aaa"""', + 19 => '"""\\"""""",aaa', +); +$list = array ( + 0 => 'aaa,bbb', + 1 => 'aaa,"bbb"', + 2 => '"aaa","bbb"', + 3 => 'aaa,bbb', + 4 => '"aaa",bbb', + 5 => '"aaa", "bbb"', + 6 => ',', + 7 => 'aaa,', + 8 => ',"aaa"', + 9 => '"",""', + 10 => '"""""",', + 11 => '""""",aaa', + 12 => 'aaa,bbb ', + 13 => 'aaa,"bbb "', + 14 => 'aaa"aaa","bbb"bbb', + 15 => 'aaa"aaa""",bbb', + 16 => 'aaa,"\\"bbb,ccc', + 17 => 'aaa"\\"a","bbb"', + 18 => '"\\"","aaa"', + 19 => '"\\""",aaa', +); +===DONE=== diff --git a/ext/spl/tests/SplFileObject_fputcsv_002.phpt b/ext/spl/tests/SplFileObject_fputcsv_002.phpt new file mode 100644 index 0000000000..1e8f4c319f --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_002.phpt @@ -0,0 +1,41 @@ +--TEST-- +SplFileObject::fputcsv(): Checking data after calling the function +--FILE-- +<?php +$fo = new SplFileObject('SplFileObject::fputcsv.csv', 'w'); + +$data = array(1, 2, 'foo', 'haha', array(4, 5, 6), 1.3, null); + +$fo->fputcsv($data); + +var_dump($data); +?> +--CLEAN-- +<?php +unlink('SplFileObject::fputcsv.csv'); +?> +--EXPECTF-- +Notice: Array to string conversion in %s on line %d +array(7) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + string(3) "foo" + [3]=> + string(4) "haha" + [4]=> + array(3) { + [0]=> + int(4) + [1]=> + int(5) + [2]=> + int(6) + } + [5]=> + float(1.3) + [6]=> + NULL +} diff --git a/ext/spl/tests/SplFileObject_fputcsv_error.phpt b/ext/spl/tests/SplFileObject_fputcsv_error.phpt new file mode 100644 index 0000000000..f963d63794 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_error.phpt @@ -0,0 +1,30 @@ +--TEST-- +SplFileObject::fputcsv(): error conditions +--FILE-- +<?php +$fo = new SplFileObject('SplFileObject::fputcsv.csv', 'w'); + +echo "*** Testing error conditions ***\n"; +// zero argument +echo "-- Testing fputcsv() with zero argument --\n"; +var_dump( $fo->fputcsv() ); + +// more than expected no. of args +echo "-- Testing fputcsv() with more than expected number of arguments --\n"; +$fields = array("fld1", "fld2"); +$delim = ";"; +$enclosure ="\""; +var_dump( $fo->fputcsv($fields, $delim, $enclosure, $fo) ); + +echo "Done\n"; +--EXPECTF-- +*** Testing error conditions *** +-- Testing fputcsv() with zero argument -- + +Warning: SplFileObject::fputcsv() expects at least 1 parameter, 0 given in %s on line %d +NULL +-- Testing fputcsv() with more than expected number of arguments -- + +Warning: SplFileObject::fputcsv() expects at most 3 parameters, 4 given in %s on line %d +NULL +Done diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation1.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation1.phpt new file mode 100644 index 0000000000..6780b242dd --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation1.phpt @@ -0,0 +1,826 @@ +--TEST-- +Test fputcsv() : usage variations - with all parameters specified +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when all its parameters are provided */ + +echo "*** Testing fputcsv() : 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(',', '"', array('water','fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation1.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + + var_dump( $fo->fputcsv($csv_field, $delimiter, $enclosure) ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with all parameters specified *** + +-- file opened in r+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in a+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in w+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in x+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in r+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in r+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in r+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in a+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in a+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in a+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in w+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in w+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in w+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in x+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in x+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in x+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in r+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in r+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in r+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in a+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in a+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in a+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in w+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in w+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in w+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in x+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in x+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in x+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation10.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation10.phpt new file mode 100644 index 0000000000..08a2461b4d --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation10.phpt @@ -0,0 +1,327 @@ +--TEST-- +SplFileObject::fputcsv(): Usage variations -- with line without any CSV fields +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when the field has no CSV format */ + +echo "*** Testing fputcsv() : with no CSV format in the field ***\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 +*/ + +$fields = array( array('water_fruit\n'), + array("water_fruit\n"), + array("") + ); + +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation10.tmp"; + +$file_modes = array ("r+", "r+b", "r+t", + "a+", "a+b", "a+t", + "w+", "w+b", "w+t", + "x+", "x+b", "x+t"); + +$loop_counter = 1; +foreach ($fields as $field) { + for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $csv_field = $field; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field) ); + + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with no CSV format in the field *** + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) ""water_fruit\n" +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) ""water_fruit\n" +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) ""water_fruit\n" +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) ""water_fruit\n" +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) ""water_fruit\n" +" + +-- file opened in r+ -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in r+b -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in r+t -- +int(15) +int(15) +bool(false) +string(%d) ""water_fruit +" +" + +-- file opened in a+ -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in a+b -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in a+t -- +int(15) +int(15) +bool(false) +string(%d) ""water_fruit +" +" + +-- file opened in w+ -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in w+b -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in w+t -- +int(15) +int(15) +bool(false) +string(%d) ""water_fruit +" +" + +-- file opened in x+ -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in x+b -- +int(15) +int(15) +bool(false) +string(15) ""water_fruit +" +" + +-- file opened in x+t -- +int(15) +int(15) +bool(false) +string(%d) ""water_fruit +" +" + +-- file opened in r+ -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in r+b -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in r+t -- +int(1) +int(1) +bool(false) +string(%d) " +" + +-- file opened in a+ -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in a+b -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in a+t -- +int(1) +int(1) +bool(false) +string(%d) " +" + +-- file opened in w+ -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in w+b -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in w+t -- +int(1) +int(1) +bool(false) +string(%d) " +" + +-- file opened in x+ -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in x+b -- +int(1) +int(1) +bool(false) +string(1) " +" + +-- file opened in x+t -- +int(1) +int(1) +bool(false) +string(%d) " +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation11.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation11.phpt new file mode 100644 index 0000000000..c85dd0a8cd --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation11.phpt @@ -0,0 +1,826 @@ +--TEST-- +SplFileObject::fputcsv(): Usage variations -- with default enclosure value +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when default enclosure value is provided */ + +echo "*** Testing fputcsv() : with default enclosure 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(',', '"', array('water,fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation11.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field, $delimiter) ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with default enclosure value *** + +-- file opened in r+ -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in r+b -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in r+t -- +int(14) +int(14) +bool(false) +string(%d) ""water,fruit" +" + +-- file opened in a+ -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in a+b -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in a+t -- +int(14) +int(14) +bool(false) +string(%d) ""water,fruit" +" + +-- file opened in w+ -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in w+b -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in w+t -- +int(14) +int(14) +bool(false) +string(%d) ""water,fruit" +" + +-- file opened in x+ -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in x+b -- +int(14) +int(14) +bool(false) +string(14) ""water,fruit" +" + +-- file opened in x+t -- +int(14) +int(14) +bool(false) +string(%d) ""water,fruit" +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) ""&water&:&fruit&" +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) ""&water&:&fruit&" +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) ""&water&:&fruit&" +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) ""&water&:&fruit&" +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) ""&water&:&fruit&" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) ""=water===fruit=" +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) ""=water===fruit=" +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) ""=water===fruit=" +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) ""=water===fruit=" +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) ""=water===fruit=" +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) ""-water--fruit-air" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) ""-water--fruit-air" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) ""-water--fruit-air" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) ""-water--fruit-air" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) ""-water--fruit-air" +" + +-- file opened in r+ -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in r+b -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in r+t -- +int(24) +int(24) +bool(false) +string(%d) ""-water---fruit---air-" +" + +-- file opened in a+ -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in a+b -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in a+t -- +int(24) +int(24) +bool(false) +string(%d) ""-water---fruit---air-" +" + +-- file opened in w+ -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in w+b -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in w+t -- +int(24) +int(24) +bool(false) +string(%d) ""-water---fruit---air-" +" + +-- file opened in x+ -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in x+b -- +int(24) +int(24) +bool(false) +string(24) ""-water---fruit---air-" +" + +-- file opened in x+t -- +int(24) +int(24) +bool(false) +string(%d) ""-water---fruit---air-" +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation12.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation12.phpt new file mode 100644 index 0000000000..8bb47d3371 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation12.phpt @@ -0,0 +1,827 @@ +--TEST-- +SplFileObject::fputcsv(): Usage variations -- with default enclosure and different delimiter +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when default enclosure value and delimiter value + other than that in the field is provided */ + +echo "*** Testing fputcsv() : with default enclosure and different delimiter 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(',', '"', array('water,fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation12.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field, '+') ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with default enclosure and different delimiter value *** + +-- file opened in r+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in a+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in w+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in x+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt new file mode 100644 index 0000000000..d7425076af --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation13.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test fputcsv() : usage variations - with default enclosure & delimiter of two chars +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when default enclosure value and delimiter + of two chars is provided */ + +echo "*** Testing fputcsv() : with default enclosure & delimiter of two chars ***\n"; + +$fo = new SplFileObject('SplFileObject::fputcsv.csv', 'w'); + +var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '"')); + +unset($fo); + +echo "Done\n"; +?> +--CLEAN-- +<?php +unlink('SplFileObject::fputcsv.csv'); +?> +--EXPECTF-- +*** Testing fputcsv() : with default enclosure & delimiter of two chars *** + +Warning: SplFileObject::fputcsv(): delimiter must be a character in %s on line %d +bool(false) +Done diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt new file mode 100644 index 0000000000..aa828ca0c7 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation14.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test fputcsv() : usage variations - with enclosure & delimiter of two chars +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when default enclosure value and delimiter + of two chars is provided and file is opened in read only mode */ + +echo "*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***\n"; + +$fo = new SplFileObject('SplFileObject::fputcsv.csv', 'w'); + +var_dump($fo->fputcsv(array('water', 'fruit'), ',,', '""')); + +unset($fo); + +echo "Done\n"; +?> +--CLEAN-- +<?php +unlink('SplFileObject::fputcsv.csv'); +?> +--EXPECTF-- +*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode *** + +Warning: SplFileObject::fputcsv(): enclosure must be a character in %s on line %d +bool(false) +Done diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation5.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation5.phpt new file mode 100644 index 0000000000..9c4c01f54f --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation5.phpt @@ -0,0 +1,826 @@ +--TEST-- +Test fputcsv() : usage variations - with default arguments value +--FILE-- +<?php + +/* Testing fputcsv() to write to a file when default arguments values are considered */ + +echo "*** Testing fputcsv() : 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(',', '"', array('water','fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation5.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field) ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with default arguments value *** + +-- file opened in r+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in a+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in w+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in x+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) ""^water^ ^fruit^" +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) ""^water^ ^fruit^" +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) ""&""""""""&:&""&:,:"":&,&:,,,," +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) ""&""""""""&:&""&:,:"":&,&:,,,," +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation6.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation6.phpt new file mode 100644 index 0000000000..6cbb880aaf --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation6.phpt @@ -0,0 +1,829 @@ +--TEST-- +Test fputcsv() : usage variations - with different delimiter and enclosure +--FILE-- +<?php + +/* + Testing fputcsv() to write to a file when delimiter are different from those + present in the field to be written to the file + */ + +echo "*** Testing fputcsv() : 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(',', '"', array('water,fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation6.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field, '+', '%') ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with different delimiter and enclosure *** + +-- file opened in r+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in r+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in a+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in a+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in w+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in w+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in x+ -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+b -- +int(12) +int(12) +bool(false) +string(12) "water,fruit +" + +-- file opened in x+t -- +int(12) +int(12) +bool(false) +string(%d) "water,fruit +" + +-- file opened in r+ -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in r+b -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in r+t -- +int(15) +int(15) +bool(false) +string(%d) ""water","fruit +" + +-- file opened in a+ -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in a+b -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in a+t -- +int(15) +int(15) +bool(false) +string(%d) ""water","fruit +" + +-- file opened in w+ -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in w+b -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in w+t -- +int(15) +int(15) +bool(false) +string(%d) ""water","fruit +" + +-- file opened in x+ -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in x+b -- +int(15) +int(15) +bool(false) +string(15) ""water","fruit +" + +-- file opened in x+t -- +int(15) +int(15) +bool(false) +string(%d) ""water","fruit +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) ""water","fruit" +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) ""water","fruit" +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) ""water","fruit" +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) ""water","fruit" +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) ""water","fruit" +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "%^water^ ^fruit^% +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "%^water^ ^fruit^% +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "%^water^ ^fruit^% +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "%^water^ ^fruit^% +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "%^water^ ^fruit^% +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "&water&:&fruit& +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "&water&:&fruit& +" + +-- file opened in r+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in r+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in a+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in a+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in w+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in w+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in x+ -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+b -- +int(16) +int(16) +bool(false) +string(16) "=water===fruit= +" + +-- file opened in x+t -- +int(16) +int(16) +bool(false) +string(%d) "=water===fruit= +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "-water--fruit-air +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "-water--fruit-air +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "-water---fruit---air- +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "-water---fruit---air- +" + +-- file opened in r+ -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in r+b -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in r+t -- +int(24) +int(24) +bool(false) +string(%d) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in a+ -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in a+b -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in a+t -- +int(24) +int(24) +bool(false) +string(%d) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in w+ -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in w+b -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in w+t -- +int(24) +int(24) +bool(false) +string(%d) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in x+ -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in x+b -- +int(24) +int(24) +bool(false) +string(24) "&""""&:&"&:,:":&,&:,,,, +" + +-- file opened in x+t -- +int(24) +int(24) +bool(false) +string(%d) "&""""&:&"&:,:":&,&:,,,, +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation7.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation7.phpt new file mode 100644 index 0000000000..ceb438a9f1 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation7.phpt @@ -0,0 +1,829 @@ +--TEST-- +Test fputcsv() : usage variations - with different delimiter and same enclosure +--FILE-- +<?php + +/* + Testing fputcsv() to write to a file when enclosure is same but delimiter is different from those + present in the field to be written to the file + */ + +echo "*** Testing fputcsv() : with different delimiter and 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(',', '"', array('water','fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation7.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field, '+', $enclosure) ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with different delimiter and same enclosure *** + +-- file opened in r+ -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in r+b -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in r+t -- +int(12) +int(12) +bool(false) +string(%d) "water+fruit +" + +-- file opened in a+ -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in a+b -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in a+t -- +int(12) +int(12) +bool(false) +string(%d) "water+fruit +" + +-- file opened in w+ -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in w+b -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in w+t -- +int(12) +int(12) +bool(false) +string(%d) "water+fruit +" + +-- file opened in x+ -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in x+b -- +int(12) +int(12) +bool(false) +string(12) "water+fruit +" + +-- file opened in x+t -- +int(12) +int(12) +bool(false) +string(%d) "water+fruit +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) """"water"",""fruit" +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) """"water"",""fruit" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) """"water"",""fruit""" +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) """"water"",""fruit""" +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "^^^water^^ ^^fruit^^^ +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "^^^water^^ ^^fruit^^^ +" + +-- file opened in r+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in r+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in r+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in a+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in a+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in a+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in w+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in w+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in w+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in x+ -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in x+b -- +int(22) +int(22) +bool(false) +string(22) "&&&water&&:&&fruit&&& +" + +-- file opened in x+t -- +int(22) +int(22) +bool(false) +string(%d) "&&&water&&:&&fruit&&& +" + +-- file opened in r+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in r+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in r+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in a+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in a+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in a+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in w+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in w+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in w+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in x+ -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in x+b -- +int(23) +int(23) +bool(false) +string(23) "===water======fruit=== +" + +-- file opened in x+t -- +int(23) +int(23) +bool(false) +string(%d) "===water======fruit=== +" + +-- file opened in r+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in r+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in r+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in a+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in a+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in a+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in w+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in w+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in w+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in x+ -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in x+b -- +int(24) +int(24) +bool(false) +string(24) "---water----fruit--air- +" + +-- file opened in x+t -- +int(24) +int(24) +bool(false) +string(%d) "---water----fruit--air- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) "---water------fruit------air--- +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) "---water------fruit------air--- +" + +-- file opened in r+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in r+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in r+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in a+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in w+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+ -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+b -- +int(32) +int(32) +bool(false) +string(32) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" + +-- file opened in x+t -- +int(32) +int(32) +bool(false) +string(%d) "&&&""""&&:&&"&&:,:":&&,&&:,,,,& +" +Done + diff --git a/ext/spl/tests/SplFileObject_fputcsv_variation8.phpt b/ext/spl/tests/SplFileObject_fputcsv_variation8.phpt new file mode 100644 index 0000000000..f1a8cbf7b1 --- /dev/null +++ b/ext/spl/tests/SplFileObject_fputcsv_variation8.phpt @@ -0,0 +1,829 @@ +--TEST-- +Test fputcsv() : usage variations - with same delimiter and different enclosure +--FILE-- +<?php + +/* + Testing fputcsv() to write to a file when delimiter is same but enclosure is different from those + present in the field to be written to the file + */ + +echo "*** Testing fputcsv() : with same delimiter and different 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(',', '"', array('water,fruit') ), + array(',', '"', array('"water","fruit') ), + array(',', '"', array('"water","fruit"') ), + array(' ', '^', array('^water^ ^fruit^')), + array(':', '&', array('&water&:&fruit&')), + array('=', '=', array('=water===fruit=')), + array('-', '-', array('-water--fruit-air')), + array('-', '-', array('-water---fruit---air-')), + array(':', '&', array('&""""&:&"&:,:":&,&:,,,,')) + +); +$file_path = dirname(__FILE__); +$file = "$file_path/fputcsv_variation8.tmp"; + +$file_modes = array ("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++) { + + echo "\n-- file opened in $file_modes[$mode_counter] --\n"; + // create the file and add the content with has csv fields + if ( strstr($file_modes[$mode_counter], "r") ) { + $fo = new SplFileObject($file, 'w'); + } else { + $fo = new SplFileObject($file, $file_modes[$mode_counter]); + } + $delimiter = $csv_list[0]; + $enclosure = $csv_list[1]; + $csv_field = $csv_list[2]; + + // write to a file in csv format + var_dump( $fo->fputcsv($csv_field, $delimiter, '+') ); + // check the file pointer position and eof + var_dump( $fo->ftell() ); + var_dump( $fo->eof() ); + //close the file + unset($fo); + + // print the file contents + var_dump( file_get_contents($file) ); + + //delete file + unlink($file); + } //end of mode loop +} // end of foreach + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing fputcsv() : with same delimiter and different enclosure *** + +-- file opened in r+ -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in r+b -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in r+t -- +int(14) +int(14) +bool(false) +string(%d) "+water,fruit+ +" + +-- file opened in a+ -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in a+b -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in a+t -- +int(14) +int(14) +bool(false) +string(%d) "+water,fruit+ +" + +-- file opened in w+ -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in w+b -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in w+t -- +int(14) +int(14) +bool(false) +string(%d) "+water,fruit+ +" + +-- file opened in x+ -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in x+b -- +int(14) +int(14) +bool(false) +string(14) "+water,fruit+ +" + +-- file opened in x+t -- +int(14) +int(14) +bool(false) +string(%d) "+water,fruit+ +" + +-- file opened in r+ -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in r+b -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in r+t -- +int(17) +int(17) +bool(false) +string(%d) "+"water","fruit+ +" + +-- file opened in a+ -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in a+b -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in a+t -- +int(17) +int(17) +bool(false) +string(%d) "+"water","fruit+ +" + +-- file opened in w+ -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in w+b -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in w+t -- +int(17) +int(17) +bool(false) +string(%d) "+"water","fruit+ +" + +-- file opened in x+ -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in x+b -- +int(17) +int(17) +bool(false) +string(17) "+"water","fruit+ +" + +-- file opened in x+t -- +int(17) +int(17) +bool(false) +string(%d) "+"water","fruit+ +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "+"water","fruit"+ +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "+"water","fruit"+ +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "+"water","fruit"+ +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "+"water","fruit"+ +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "+"water","fruit"+ +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "+^water^ ^fruit^+ +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "+^water^ ^fruit^+ +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "+^water^ ^fruit^+ +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "+^water^ ^fruit^+ +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "+^water^ ^fruit^+ +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "+&water&:&fruit&+ +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "+&water&:&fruit&+ +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "+&water&:&fruit&+ +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "+&water&:&fruit&+ +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "+&water&:&fruit&+ +" + +-- file opened in r+ -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in r+b -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in r+t -- +int(18) +int(18) +bool(false) +string(%d) "+=water===fruit=+ +" + +-- file opened in a+ -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in a+b -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in a+t -- +int(18) +int(18) +bool(false) +string(%d) "+=water===fruit=+ +" + +-- file opened in w+ -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in w+b -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in w+t -- +int(18) +int(18) +bool(false) +string(%d) "+=water===fruit=+ +" + +-- file opened in x+ -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in x+b -- +int(18) +int(18) +bool(false) +string(18) "+=water===fruit=+ +" + +-- file opened in x+t -- +int(18) +int(18) +bool(false) +string(%d) "+=water===fruit=+ +" + +-- file opened in r+ -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in r+b -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in r+t -- +int(20) +int(20) +bool(false) +string(%d) "+-water--fruit-air+ +" + +-- file opened in a+ -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in a+b -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in a+t -- +int(20) +int(20) +bool(false) +string(%d) "+-water--fruit-air+ +" + +-- file opened in w+ -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in w+b -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in w+t -- +int(20) +int(20) +bool(false) +string(%d) "+-water--fruit-air+ +" + +-- file opened in x+ -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in x+b -- +int(20) +int(20) +bool(false) +string(20) "+-water--fruit-air+ +" + +-- file opened in x+t -- +int(20) +int(20) +bool(false) +string(%d) "+-water--fruit-air+ +" + +-- file opened in r+ -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in r+b -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in r+t -- +int(24) +int(24) +bool(false) +string(%d) "+-water---fruit---air-+ +" + +-- file opened in a+ -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in a+b -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in a+t -- +int(24) +int(24) +bool(false) +string(%d) "+-water---fruit---air-+ +" + +-- file opened in w+ -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in w+b -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in w+t -- +int(24) +int(24) +bool(false) +string(%d) "+-water---fruit---air-+ +" + +-- file opened in x+ -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in x+b -- +int(24) +int(24) +bool(false) +string(24) "+-water---fruit---air-+ +" + +-- file opened in x+t -- +int(24) +int(24) +bool(false) +string(%d) "+-water---fruit---air-+ +" + +-- file opened in r+ -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in r+b -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in r+t -- +int(26) +int(26) +bool(false) +string(%d) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in a+ -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in a+b -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in a+t -- +int(26) +int(26) +bool(false) +string(%d) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in w+ -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in w+b -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in w+t -- +int(26) +int(26) +bool(false) +string(%d) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in x+ -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in x+b -- +int(26) +int(26) +bool(false) +string(26) "+&""""&:&"&:,:":&,&:,,,,+ +" + +-- file opened in x+t -- +int(26) +int(26) +bool(false) +string(%d) "+&""""&:&"&:,:":&,&:,,,,+ +" +Done + |