SplFileObject_fputcsv_variation12.phpt 11 KB

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