fputcsv_variation8.phpt 11 KB

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