fputcsv_variation12.phpt 12 KB

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