SplFileObject_fputcsv_variation7.phpt 12 KB

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