fputcsv_variation7.phpt 12 KB

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