fputcsv_variation14.phpt 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. --TEST--
  2. Test fputcsv() : usage variations - with enclosure & delimiter of two chars(read only modes)
  3. --FILE--
  4. <?php
  5. /*
  6. Prototype: array fputcsv ( resource $handle , array $fields [, string $delimiter [, string $enclosure]]] );
  7. Description: Format line as CSV and write to the file pointer
  8. */
  9. /* Testing fputcsv() to write to a file when default enclosure value and delimiter
  10. of two chars is provided and file is opened in read only mode */
  11. echo "*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***\n";
  12. /* the array is with three elements in it. Each element should be read as
  13. 1st element is delimiter, 2nd element is enclosure
  14. and 3rd element is csv fields
  15. */
  16. $csv_lists = array (
  17. array(',', '"', array('water,fruit') ),
  18. array(',', '"', array('"water","fruit') ),
  19. array(',', '"', array('"water","fruit"') ),
  20. array(' ', '^', array('^water^ ^fruit^')),
  21. array(':', '&', array('&water&:&fruit&')),
  22. array('=', '=', array('=water===fruit=')),
  23. array('-', '-', array('-water--fruit-air')),
  24. array('-', '-', array('-water---fruit---air-')),
  25. array(':', '&', array('&""""&:&"&:,:":&,&:,,,,'))
  26. );
  27. $file_path = dirname(__FILE__);
  28. $filename = "$file_path/fputcsv_variation14.tmp";
  29. $file_modes = array ("r", "rb", "rt");
  30. // create the file
  31. $file_handle = fopen($filename, "w" );
  32. if ( !$file_handle ) {
  33. echo "Error: failed to create file $filename!\n";
  34. exit();
  35. }
  36. fclose($file_handle);
  37. $loop_counter = 1;
  38. foreach ($csv_lists as $csv_list) {
  39. for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
  40. // create the file
  41. $file_handle = fopen($filename, "w" );
  42. if ( !$file_handle ) {
  43. echo "Error: failed to create file $filename!\n";
  44. exit();
  45. }
  46. fclose($file_handle);
  47. echo "\n-- file opened in $file_modes[$mode_counter] --\n";
  48. // add the content with has csv fields
  49. $file_handle = fopen($filename, $file_modes[$mode_counter] );
  50. if ( !$file_handle ) {
  51. echo "Error: failed to create file $filename!\n";
  52. exit();
  53. }
  54. $delimiter = $csv_list[0];
  55. $enclosure = $csv_list[1];
  56. $csv_field = $csv_list[2];
  57. // write to a file in csv format
  58. var_dump( fputcsv($file_handle, $csv_field, '++', '%%') );
  59. // check the file pointer position and eof
  60. var_dump( ftell($file_handle) );
  61. var_dump( feof($file_handle) );
  62. //close the file
  63. fclose($file_handle);
  64. // print the file contents
  65. var_dump( file_get_contents($filename) );
  66. //delete file
  67. unlink($filename);
  68. } //end of mode loop
  69. } // end of foreach
  70. echo "Done\n";
  71. ?>
  72. --EXPECTF--
  73. *** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***
  74. -- file opened in r --
  75. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  76. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  77. int(0)
  78. int(0)
  79. bool(false)
  80. string(0) ""
  81. -- file opened in rb --
  82. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  83. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  84. int(0)
  85. int(0)
  86. bool(false)
  87. string(0) ""
  88. -- file opened in rt --
  89. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  90. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  91. int(0)
  92. int(0)
  93. bool(false)
  94. string(0) ""
  95. -- file opened in r --
  96. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  97. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  98. int(0)
  99. int(0)
  100. bool(false)
  101. string(0) ""
  102. -- file opened in rb --
  103. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  104. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  105. int(0)
  106. int(0)
  107. bool(false)
  108. string(0) ""
  109. -- file opened in rt --
  110. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  111. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  112. int(0)
  113. int(0)
  114. bool(false)
  115. string(0) ""
  116. -- file opened in r --
  117. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  118. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  119. int(0)
  120. int(0)
  121. bool(false)
  122. string(0) ""
  123. -- file opened in rb --
  124. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  125. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  126. int(0)
  127. int(0)
  128. bool(false)
  129. string(0) ""
  130. -- file opened in rt --
  131. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  132. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  133. int(0)
  134. int(0)
  135. bool(false)
  136. string(0) ""
  137. -- file opened in r --
  138. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  139. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  140. int(0)
  141. int(0)
  142. bool(false)
  143. string(0) ""
  144. -- file opened in rb --
  145. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  146. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  147. int(0)
  148. int(0)
  149. bool(false)
  150. string(0) ""
  151. -- file opened in rt --
  152. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  153. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  154. int(0)
  155. int(0)
  156. bool(false)
  157. string(0) ""
  158. -- file opened in r --
  159. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  160. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  161. int(0)
  162. int(0)
  163. bool(false)
  164. string(0) ""
  165. -- file opened in rb --
  166. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  167. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  168. int(0)
  169. int(0)
  170. bool(false)
  171. string(0) ""
  172. -- file opened in rt --
  173. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  174. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  175. int(0)
  176. int(0)
  177. bool(false)
  178. string(0) ""
  179. -- file opened in r --
  180. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  181. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  182. int(0)
  183. int(0)
  184. bool(false)
  185. string(0) ""
  186. -- file opened in rb --
  187. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  188. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  189. int(0)
  190. int(0)
  191. bool(false)
  192. string(0) ""
  193. -- file opened in rt --
  194. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  195. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  196. int(0)
  197. int(0)
  198. bool(false)
  199. string(0) ""
  200. -- file opened in r --
  201. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  202. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  203. int(0)
  204. int(0)
  205. bool(false)
  206. string(0) ""
  207. -- file opened in rb --
  208. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  209. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  210. int(0)
  211. int(0)
  212. bool(false)
  213. string(0) ""
  214. -- file opened in rt --
  215. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  216. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  217. int(0)
  218. int(0)
  219. bool(false)
  220. string(0) ""
  221. -- file opened in r --
  222. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  223. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  224. int(0)
  225. int(0)
  226. bool(false)
  227. string(0) ""
  228. -- file opened in rb --
  229. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  230. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  231. int(0)
  232. int(0)
  233. bool(false)
  234. string(0) ""
  235. -- file opened in rt --
  236. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  237. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  238. int(0)
  239. int(0)
  240. bool(false)
  241. string(0) ""
  242. -- file opened in r --
  243. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  244. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  245. int(0)
  246. int(0)
  247. bool(false)
  248. string(0) ""
  249. -- file opened in rb --
  250. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  251. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  252. int(0)
  253. int(0)
  254. bool(false)
  255. string(0) ""
  256. -- file opened in rt --
  257. Notice: fputcsv(): delimiter must be a single character in %s on line %d
  258. Notice: fputcsv(): enclosure must be a single character in %s on line %d
  259. int(0)
  260. int(0)
  261. bool(false)
  262. string(0) ""
  263. Done