fputcsv_variation12.phpt 12 KB

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