From 6cb7ea4089b07e49defe4dd98c0b75124e93fd19 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 9 Nov 2010 15:07:50 +0000 Subject: [PATCH] Implemented FR #53264 (Add fputcsv method to SplFileObject). --- UPGRADING | 3 + ext/spl/spl_directory.c | 44 + ext/spl/tests/SplFileObject_fputcsv.phpt | 105 +++ ext/spl/tests/SplFileObject_fputcsv_002.phpt | 41 + .../tests/SplFileObject_fputcsv_error.phpt | 30 + .../SplFileObject_fputcsv_variation1.phpt | 826 +++++++++++++++++ .../SplFileObject_fputcsv_variation10.phpt | 327 +++++++ .../SplFileObject_fputcsv_variation11.phpt | 826 +++++++++++++++++ .../SplFileObject_fputcsv_variation12.phpt | 827 +++++++++++++++++ .../SplFileObject_fputcsv_variation13.phpt | 28 + .../SplFileObject_fputcsv_variation14.phpt | 28 + .../SplFileObject_fputcsv_variation5.phpt | 826 +++++++++++++++++ .../SplFileObject_fputcsv_variation6.phpt | 829 ++++++++++++++++++ .../SplFileObject_fputcsv_variation7.phpt | 829 ++++++++++++++++++ .../SplFileObject_fputcsv_variation8.phpt | 829 ++++++++++++++++++ ext/standard/file.c | 20 +- ext/standard/file.h | 1 + 17 files changed, 6414 insertions(+), 5 deletions(-) create mode 100644 ext/spl/tests/SplFileObject_fputcsv.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_002.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_error.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation1.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation10.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation11.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation12.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation13.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation14.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation5.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation6.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation7.phpt create mode 100644 ext/spl/tests/SplFileObject_fputcsv_variation8.phpt diff --git a/UPGRADING b/UPGRADING index b17b36b9b1..6b4ac45340 100755 --- a/UPGRADING +++ b/UPGRADING @@ -309,6 +309,9 @@ UPGRADE NOTES - PHP X.Y - PDO_dblib - PDO::newRowset() + - SplFileObject + - SplFileObject::fputcsv() + i. New class constants - 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-- + '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=== + +--CLEAN-- + +--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-- +fputcsv($data); + +var_dump($data); +?> +--CLEAN-- + +--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-- +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-- +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-- +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-- +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-- +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-- +fputcsv(array('water', 'fruit'), ',,', '"')); + +unset($fo); + +echo "Done\n"; +?> +--CLEAN-- + +--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-- +fputcsv(array('water', 'fruit'), ',,', '""')); + +unset($fo); + +echo "Done\n"; +?> +--CLEAN-- + +--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-- +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-- +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-- +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-- +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 + diff --git a/ext/standard/file.c b/ext/standard/file.c index 95106a8af8..a684b4ac8a 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1845,13 +1845,10 @@ PHP_FUNCTION(fputcsv) char enclosure = '"'; /* allow this to be set as parameter */ const char escape_char = '\\'; php_stream *stream; + zval *fp = NULL, *fields = NULL; int ret; - zval *fp = NULL, *fields = NULL, **field_tmp = NULL, field; char *delimiter_str = NULL, *enclosure_str = NULL; int delimiter_str_len = 0, enclosure_str_len = 0; - HashPosition pos; - int count, i = 0; - smart_str csvline = {0}; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ra|ss", &fp, &fields, &delimiter_str, &delimiter_str_len, @@ -1885,6 +1882,19 @@ PHP_FUNCTION(fputcsv) PHP_STREAM_TO_ZVAL(stream, &fp); + ret = php_fputcsv(stream, fields, delimiter, enclosure, escape_char TSRMLS_CC); + RETURN_LONG(ret); +} +/* }}} */ + +/* {{{ PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, char escape_char TSRMLS_DC) */ +PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, char escape_char TSRMLS_DC) +{ + int count, i = 0, ret; + zval **field_tmp = NULL, field; + smart_str csvline = {0}; + HashPosition pos; + count = zend_hash_num_elements(Z_ARRVAL_P(fields)); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(fields), &pos); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(fields), (void **) &field_tmp, &pos) == SUCCESS) { @@ -1950,7 +1960,7 @@ PHP_FUNCTION(fputcsv) smart_str_free(&csvline); - RETURN_LONG(ret); + return ret; } /* }}} */ diff --git a/ext/standard/file.h b/ext/standard/file.h index 2284a28b96..2c33c7506f 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -80,6 +80,7 @@ PHPAPI int php_copy_file_ctx(char *src, char *dest, int src_chk, php_stream_cont PHPAPI int php_mkdir_ex(char *dir, long mode, int options TSRMLS_DC); PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC); PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, char escape_char, size_t buf_len, char *buf, zval *return_value TSRMLS_DC); +PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, char escape_char TSRMLS_DC); #define META_DEF_BUFSIZE 8192 -- 2.40.0