fputcsv_variation9.phpt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724
  1. --TEST--
  2. Test fputcsv() : usage variations - two chars as enclosure & delimiter
  3. --FILE--
  4. <?php
  5. /* Testing fputcsv() to write to a file when delimiter and enclosure are of two chars each */
  6. echo "*** Testing fputcsv() : with two chars as enclosure & delimiter ***\n";
  7. /* the array is with three elements in it. Each element should be read as
  8. 1st element is delimiter, 2nd element is enclosure
  9. and 3rd element is csv fields
  10. */
  11. $csv_lists = array (
  12. array(',', '"', array('water,fruit') ),
  13. array(',', '"', array('"water","fruit') ),
  14. array(',', '"', array('"water","fruit"') ),
  15. array(' ', '^', array('^water^ ^fruit^')),
  16. array(':', '&', array('&water&:&fruit&')),
  17. array('=', '=', array('=water===fruit=')),
  18. array('-', '-', array('-water--fruit-air')),
  19. array('-', '-', array('-water---fruit---air-')),
  20. array(':', '&', array('&""""&:&"&:,:":&,&:,,,,'))
  21. );
  22. $file_path = __DIR__;
  23. $filename = "$file_path/fputcsv_variation9.tmp";
  24. $file_modes = array ("r+", "r+b", "r+t",
  25. "a+", "a+b", "a+t",
  26. "w+", "w+b", "w+t",
  27. "x+", "x+b", "x+t");
  28. $loop_counter = 1;
  29. foreach ($csv_lists as $csv_list) {
  30. for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
  31. echo "\n-- file opened in $file_modes[$mode_counter] --\n";
  32. // create the file and add the content with has csv fields
  33. if ( strstr($file_modes[$mode_counter], "r") ) {
  34. $file_handle = fopen($filename, "w");
  35. } else {
  36. $file_handle = fopen($filename, $file_modes[$mode_counter] );
  37. }
  38. if ( !$file_handle ) {
  39. echo "Error: failed to create file $filename!\n";
  40. exit();
  41. }
  42. $delimiter = $csv_list[0];
  43. $enclosure = $csv_list[1];
  44. $csv_field = $csv_list[2];
  45. // write to a file in csv format
  46. try {
  47. var_dump( fputcsv($file_handle, $csv_field, '++', '%%') );
  48. } catch (ValueError $e) {
  49. echo $e->getMessage(), "\n";
  50. }
  51. // check the file pointer position and eof
  52. var_dump( ftell($file_handle) );
  53. var_dump( feof($file_handle) );
  54. //close the file
  55. fclose($file_handle);
  56. // print the file contents
  57. var_dump( file_get_contents($filename) );
  58. //delete file
  59. unlink($filename);
  60. } //end of mode loop
  61. } // end of foreach
  62. echo "Done\n";
  63. ?>
  64. --EXPECT--
  65. *** Testing fputcsv() : with two chars as enclosure & delimiter ***
  66. -- file opened in r+ --
  67. fputcsv(): Argument #3 ($separator) must be a single character
  68. int(0)
  69. bool(false)
  70. string(0) ""
  71. -- file opened in r+b --
  72. fputcsv(): Argument #3 ($separator) must be a single character
  73. int(0)
  74. bool(false)
  75. string(0) ""
  76. -- file opened in r+t --
  77. fputcsv(): Argument #3 ($separator) must be a single character
  78. int(0)
  79. bool(false)
  80. string(0) ""
  81. -- file opened in a+ --
  82. fputcsv(): Argument #3 ($separator) must be a single character
  83. int(0)
  84. bool(false)
  85. string(0) ""
  86. -- file opened in a+b --
  87. fputcsv(): Argument #3 ($separator) must be a single character
  88. int(0)
  89. bool(false)
  90. string(0) ""
  91. -- file opened in a+t --
  92. fputcsv(): Argument #3 ($separator) must be a single character
  93. int(0)
  94. bool(false)
  95. string(0) ""
  96. -- file opened in w+ --
  97. fputcsv(): Argument #3 ($separator) must be a single character
  98. int(0)
  99. bool(false)
  100. string(0) ""
  101. -- file opened in w+b --
  102. fputcsv(): Argument #3 ($separator) must be a single character
  103. int(0)
  104. bool(false)
  105. string(0) ""
  106. -- file opened in w+t --
  107. fputcsv(): Argument #3 ($separator) must be a single character
  108. int(0)
  109. bool(false)
  110. string(0) ""
  111. -- file opened in x+ --
  112. fputcsv(): Argument #3 ($separator) must be a single character
  113. int(0)
  114. bool(false)
  115. string(0) ""
  116. -- file opened in x+b --
  117. fputcsv(): Argument #3 ($separator) must be a single character
  118. int(0)
  119. bool(false)
  120. string(0) ""
  121. -- file opened in x+t --
  122. fputcsv(): Argument #3 ($separator) must be a single character
  123. int(0)
  124. bool(false)
  125. string(0) ""
  126. -- file opened in r+ --
  127. fputcsv(): Argument #3 ($separator) must be a single character
  128. int(0)
  129. bool(false)
  130. string(0) ""
  131. -- file opened in r+b --
  132. fputcsv(): Argument #3 ($separator) must be a single character
  133. int(0)
  134. bool(false)
  135. string(0) ""
  136. -- file opened in r+t --
  137. fputcsv(): Argument #3 ($separator) must be a single character
  138. int(0)
  139. bool(false)
  140. string(0) ""
  141. -- file opened in a+ --
  142. fputcsv(): Argument #3 ($separator) must be a single character
  143. int(0)
  144. bool(false)
  145. string(0) ""
  146. -- file opened in a+b --
  147. fputcsv(): Argument #3 ($separator) must be a single character
  148. int(0)
  149. bool(false)
  150. string(0) ""
  151. -- file opened in a+t --
  152. fputcsv(): Argument #3 ($separator) must be a single character
  153. int(0)
  154. bool(false)
  155. string(0) ""
  156. -- file opened in w+ --
  157. fputcsv(): Argument #3 ($separator) must be a single character
  158. int(0)
  159. bool(false)
  160. string(0) ""
  161. -- file opened in w+b --
  162. fputcsv(): Argument #3 ($separator) must be a single character
  163. int(0)
  164. bool(false)
  165. string(0) ""
  166. -- file opened in w+t --
  167. fputcsv(): Argument #3 ($separator) must be a single character
  168. int(0)
  169. bool(false)
  170. string(0) ""
  171. -- file opened in x+ --
  172. fputcsv(): Argument #3 ($separator) must be a single character
  173. int(0)
  174. bool(false)
  175. string(0) ""
  176. -- file opened in x+b --
  177. fputcsv(): Argument #3 ($separator) must be a single character
  178. int(0)
  179. bool(false)
  180. string(0) ""
  181. -- file opened in x+t --
  182. fputcsv(): Argument #3 ($separator) must be a single character
  183. int(0)
  184. bool(false)
  185. string(0) ""
  186. -- file opened in r+ --
  187. fputcsv(): Argument #3 ($separator) must be a single character
  188. int(0)
  189. bool(false)
  190. string(0) ""
  191. -- file opened in r+b --
  192. fputcsv(): Argument #3 ($separator) must be a single character
  193. int(0)
  194. bool(false)
  195. string(0) ""
  196. -- file opened in r+t --
  197. fputcsv(): Argument #3 ($separator) must be a single character
  198. int(0)
  199. bool(false)
  200. string(0) ""
  201. -- file opened in a+ --
  202. fputcsv(): Argument #3 ($separator) must be a single character
  203. int(0)
  204. bool(false)
  205. string(0) ""
  206. -- file opened in a+b --
  207. fputcsv(): Argument #3 ($separator) must be a single character
  208. int(0)
  209. bool(false)
  210. string(0) ""
  211. -- file opened in a+t --
  212. fputcsv(): Argument #3 ($separator) must be a single character
  213. int(0)
  214. bool(false)
  215. string(0) ""
  216. -- file opened in w+ --
  217. fputcsv(): Argument #3 ($separator) must be a single character
  218. int(0)
  219. bool(false)
  220. string(0) ""
  221. -- file opened in w+b --
  222. fputcsv(): Argument #3 ($separator) must be a single character
  223. int(0)
  224. bool(false)
  225. string(0) ""
  226. -- file opened in w+t --
  227. fputcsv(): Argument #3 ($separator) must be a single character
  228. int(0)
  229. bool(false)
  230. string(0) ""
  231. -- file opened in x+ --
  232. fputcsv(): Argument #3 ($separator) must be a single character
  233. int(0)
  234. bool(false)
  235. string(0) ""
  236. -- file opened in x+b --
  237. fputcsv(): Argument #3 ($separator) must be a single character
  238. int(0)
  239. bool(false)
  240. string(0) ""
  241. -- file opened in x+t --
  242. fputcsv(): Argument #3 ($separator) must be a single character
  243. int(0)
  244. bool(false)
  245. string(0) ""
  246. -- file opened in r+ --
  247. fputcsv(): Argument #3 ($separator) must be a single character
  248. int(0)
  249. bool(false)
  250. string(0) ""
  251. -- file opened in r+b --
  252. fputcsv(): Argument #3 ($separator) must be a single character
  253. int(0)
  254. bool(false)
  255. string(0) ""
  256. -- file opened in r+t --
  257. fputcsv(): Argument #3 ($separator) must be a single character
  258. int(0)
  259. bool(false)
  260. string(0) ""
  261. -- file opened in a+ --
  262. fputcsv(): Argument #3 ($separator) must be a single character
  263. int(0)
  264. bool(false)
  265. string(0) ""
  266. -- file opened in a+b --
  267. fputcsv(): Argument #3 ($separator) must be a single character
  268. int(0)
  269. bool(false)
  270. string(0) ""
  271. -- file opened in a+t --
  272. fputcsv(): Argument #3 ($separator) must be a single character
  273. int(0)
  274. bool(false)
  275. string(0) ""
  276. -- file opened in w+ --
  277. fputcsv(): Argument #3 ($separator) must be a single character
  278. int(0)
  279. bool(false)
  280. string(0) ""
  281. -- file opened in w+b --
  282. fputcsv(): Argument #3 ($separator) must be a single character
  283. int(0)
  284. bool(false)
  285. string(0) ""
  286. -- file opened in w+t --
  287. fputcsv(): Argument #3 ($separator) must be a single character
  288. int(0)
  289. bool(false)
  290. string(0) ""
  291. -- file opened in x+ --
  292. fputcsv(): Argument #3 ($separator) must be a single character
  293. int(0)
  294. bool(false)
  295. string(0) ""
  296. -- file opened in x+b --
  297. fputcsv(): Argument #3 ($separator) must be a single character
  298. int(0)
  299. bool(false)
  300. string(0) ""
  301. -- file opened in x+t --
  302. fputcsv(): Argument #3 ($separator) must be a single character
  303. int(0)
  304. bool(false)
  305. string(0) ""
  306. -- file opened in r+ --
  307. fputcsv(): Argument #3 ($separator) must be a single character
  308. int(0)
  309. bool(false)
  310. string(0) ""
  311. -- file opened in r+b --
  312. fputcsv(): Argument #3 ($separator) must be a single character
  313. int(0)
  314. bool(false)
  315. string(0) ""
  316. -- file opened in r+t --
  317. fputcsv(): Argument #3 ($separator) must be a single character
  318. int(0)
  319. bool(false)
  320. string(0) ""
  321. -- file opened in a+ --
  322. fputcsv(): Argument #3 ($separator) must be a single character
  323. int(0)
  324. bool(false)
  325. string(0) ""
  326. -- file opened in a+b --
  327. fputcsv(): Argument #3 ($separator) must be a single character
  328. int(0)
  329. bool(false)
  330. string(0) ""
  331. -- file opened in a+t --
  332. fputcsv(): Argument #3 ($separator) must be a single character
  333. int(0)
  334. bool(false)
  335. string(0) ""
  336. -- file opened in w+ --
  337. fputcsv(): Argument #3 ($separator) must be a single character
  338. int(0)
  339. bool(false)
  340. string(0) ""
  341. -- file opened in w+b --
  342. fputcsv(): Argument #3 ($separator) must be a single character
  343. int(0)
  344. bool(false)
  345. string(0) ""
  346. -- file opened in w+t --
  347. fputcsv(): Argument #3 ($separator) must be a single character
  348. int(0)
  349. bool(false)
  350. string(0) ""
  351. -- file opened in x+ --
  352. fputcsv(): Argument #3 ($separator) must be a single character
  353. int(0)
  354. bool(false)
  355. string(0) ""
  356. -- file opened in x+b --
  357. fputcsv(): Argument #3 ($separator) must be a single character
  358. int(0)
  359. bool(false)
  360. string(0) ""
  361. -- file opened in x+t --
  362. fputcsv(): Argument #3 ($separator) must be a single character
  363. int(0)
  364. bool(false)
  365. string(0) ""
  366. -- file opened in r+ --
  367. fputcsv(): Argument #3 ($separator) must be a single character
  368. int(0)
  369. bool(false)
  370. string(0) ""
  371. -- file opened in r+b --
  372. fputcsv(): Argument #3 ($separator) must be a single character
  373. int(0)
  374. bool(false)
  375. string(0) ""
  376. -- file opened in r+t --
  377. fputcsv(): Argument #3 ($separator) must be a single character
  378. int(0)
  379. bool(false)
  380. string(0) ""
  381. -- file opened in a+ --
  382. fputcsv(): Argument #3 ($separator) must be a single character
  383. int(0)
  384. bool(false)
  385. string(0) ""
  386. -- file opened in a+b --
  387. fputcsv(): Argument #3 ($separator) must be a single character
  388. int(0)
  389. bool(false)
  390. string(0) ""
  391. -- file opened in a+t --
  392. fputcsv(): Argument #3 ($separator) must be a single character
  393. int(0)
  394. bool(false)
  395. string(0) ""
  396. -- file opened in w+ --
  397. fputcsv(): Argument #3 ($separator) must be a single character
  398. int(0)
  399. bool(false)
  400. string(0) ""
  401. -- file opened in w+b --
  402. fputcsv(): Argument #3 ($separator) must be a single character
  403. int(0)
  404. bool(false)
  405. string(0) ""
  406. -- file opened in w+t --
  407. fputcsv(): Argument #3 ($separator) must be a single character
  408. int(0)
  409. bool(false)
  410. string(0) ""
  411. -- file opened in x+ --
  412. fputcsv(): Argument #3 ($separator) must be a single character
  413. int(0)
  414. bool(false)
  415. string(0) ""
  416. -- file opened in x+b --
  417. fputcsv(): Argument #3 ($separator) must be a single character
  418. int(0)
  419. bool(false)
  420. string(0) ""
  421. -- file opened in x+t --
  422. fputcsv(): Argument #3 ($separator) must be a single character
  423. int(0)
  424. bool(false)
  425. string(0) ""
  426. -- file opened in r+ --
  427. fputcsv(): Argument #3 ($separator) must be a single character
  428. int(0)
  429. bool(false)
  430. string(0) ""
  431. -- file opened in r+b --
  432. fputcsv(): Argument #3 ($separator) must be a single character
  433. int(0)
  434. bool(false)
  435. string(0) ""
  436. -- file opened in r+t --
  437. fputcsv(): Argument #3 ($separator) must be a single character
  438. int(0)
  439. bool(false)
  440. string(0) ""
  441. -- file opened in a+ --
  442. fputcsv(): Argument #3 ($separator) must be a single character
  443. int(0)
  444. bool(false)
  445. string(0) ""
  446. -- file opened in a+b --
  447. fputcsv(): Argument #3 ($separator) must be a single character
  448. int(0)
  449. bool(false)
  450. string(0) ""
  451. -- file opened in a+t --
  452. fputcsv(): Argument #3 ($separator) must be a single character
  453. int(0)
  454. bool(false)
  455. string(0) ""
  456. -- file opened in w+ --
  457. fputcsv(): Argument #3 ($separator) must be a single character
  458. int(0)
  459. bool(false)
  460. string(0) ""
  461. -- file opened in w+b --
  462. fputcsv(): Argument #3 ($separator) must be a single character
  463. int(0)
  464. bool(false)
  465. string(0) ""
  466. -- file opened in w+t --
  467. fputcsv(): Argument #3 ($separator) must be a single character
  468. int(0)
  469. bool(false)
  470. string(0) ""
  471. -- file opened in x+ --
  472. fputcsv(): Argument #3 ($separator) must be a single character
  473. int(0)
  474. bool(false)
  475. string(0) ""
  476. -- file opened in x+b --
  477. fputcsv(): Argument #3 ($separator) must be a single character
  478. int(0)
  479. bool(false)
  480. string(0) ""
  481. -- file opened in x+t --
  482. fputcsv(): Argument #3 ($separator) must be a single character
  483. int(0)
  484. bool(false)
  485. string(0) ""
  486. -- file opened in r+ --
  487. fputcsv(): Argument #3 ($separator) must be a single character
  488. int(0)
  489. bool(false)
  490. string(0) ""
  491. -- file opened in r+b --
  492. fputcsv(): Argument #3 ($separator) must be a single character
  493. int(0)
  494. bool(false)
  495. string(0) ""
  496. -- file opened in r+t --
  497. fputcsv(): Argument #3 ($separator) must be a single character
  498. int(0)
  499. bool(false)
  500. string(0) ""
  501. -- file opened in a+ --
  502. fputcsv(): Argument #3 ($separator) must be a single character
  503. int(0)
  504. bool(false)
  505. string(0) ""
  506. -- file opened in a+b --
  507. fputcsv(): Argument #3 ($separator) must be a single character
  508. int(0)
  509. bool(false)
  510. string(0) ""
  511. -- file opened in a+t --
  512. fputcsv(): Argument #3 ($separator) must be a single character
  513. int(0)
  514. bool(false)
  515. string(0) ""
  516. -- file opened in w+ --
  517. fputcsv(): Argument #3 ($separator) must be a single character
  518. int(0)
  519. bool(false)
  520. string(0) ""
  521. -- file opened in w+b --
  522. fputcsv(): Argument #3 ($separator) must be a single character
  523. int(0)
  524. bool(false)
  525. string(0) ""
  526. -- file opened in w+t --
  527. fputcsv(): Argument #3 ($separator) must be a single character
  528. int(0)
  529. bool(false)
  530. string(0) ""
  531. -- file opened in x+ --
  532. fputcsv(): Argument #3 ($separator) must be a single character
  533. int(0)
  534. bool(false)
  535. string(0) ""
  536. -- file opened in x+b --
  537. fputcsv(): Argument #3 ($separator) must be a single character
  538. int(0)
  539. bool(false)
  540. string(0) ""
  541. -- file opened in x+t --
  542. fputcsv(): Argument #3 ($separator) must be a single character
  543. int(0)
  544. bool(false)
  545. string(0) ""
  546. -- file opened in r+ --
  547. fputcsv(): Argument #3 ($separator) must be a single character
  548. int(0)
  549. bool(false)
  550. string(0) ""
  551. -- file opened in r+b --
  552. fputcsv(): Argument #3 ($separator) must be a single character
  553. int(0)
  554. bool(false)
  555. string(0) ""
  556. -- file opened in r+t --
  557. fputcsv(): Argument #3 ($separator) must be a single character
  558. int(0)
  559. bool(false)
  560. string(0) ""
  561. -- file opened in a+ --
  562. fputcsv(): Argument #3 ($separator) must be a single character
  563. int(0)
  564. bool(false)
  565. string(0) ""
  566. -- file opened in a+b --
  567. fputcsv(): Argument #3 ($separator) must be a single character
  568. int(0)
  569. bool(false)
  570. string(0) ""
  571. -- file opened in a+t --
  572. fputcsv(): Argument #3 ($separator) must be a single character
  573. int(0)
  574. bool(false)
  575. string(0) ""
  576. -- file opened in w+ --
  577. fputcsv(): Argument #3 ($separator) must be a single character
  578. int(0)
  579. bool(false)
  580. string(0) ""
  581. -- file opened in w+b --
  582. fputcsv(): Argument #3 ($separator) must be a single character
  583. int(0)
  584. bool(false)
  585. string(0) ""
  586. -- file opened in w+t --
  587. fputcsv(): Argument #3 ($separator) must be a single character
  588. int(0)
  589. bool(false)
  590. string(0) ""
  591. -- file opened in x+ --
  592. fputcsv(): Argument #3 ($separator) must be a single character
  593. int(0)
  594. bool(false)
  595. string(0) ""
  596. -- file opened in x+b --
  597. fputcsv(): Argument #3 ($separator) must be a single character
  598. int(0)
  599. bool(false)
  600. string(0) ""
  601. -- file opened in x+t --
  602. fputcsv(): Argument #3 ($separator) must be a single character
  603. int(0)
  604. bool(false)
  605. string(0) ""
  606. Done