fscanf_variation17.phpt 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. --TEST--
  2. Test fscanf() function: usage variations - string formats with arrays
  3. --FILE--
  4. <?php
  5. /* Test fscanf() to scan arrays using different string format types */
  6. $file_path = __DIR__;
  7. echo "*** Test fscanf(): different string format types with arrays ***\n";
  8. // create a file
  9. $filename = "$file_path/fscanf_variation17.tmp";
  10. $file_handle = fopen($filename, "w");
  11. if($file_handle == false)
  12. exit("Error:failed to open file $filename");
  13. // array types
  14. $array_types = array (
  15. array(),
  16. array(0),
  17. array(1),
  18. array(NULL),
  19. array(null),
  20. array("string"),
  21. array(true),
  22. array(TRUE),
  23. array(false),
  24. array(FALSE),
  25. array(1,2,3,4),
  26. array(1 => "One", "two" => 2)
  27. );
  28. $string_formats = array( "%s",
  29. "%hs", "%ls", "%Ls",
  30. " %s", "%s ", "% s",
  31. "\t%s", "\n%s", "%4s",
  32. "%30s", "%[a-zA-Z0-9]", "%*s");
  33. $counter = 1;
  34. // writing to the file
  35. foreach($array_types as $value) {
  36. @fprintf($file_handle, "%s", $value);
  37. @fprintf($file_handle, "\n");
  38. }
  39. // closing the file
  40. fclose($file_handle);
  41. // opening the file for reading
  42. $file_handle = fopen($filename, "r");
  43. if($file_handle == false) {
  44. exit("Error:failed to open file $filename");
  45. }
  46. $counter = 1;
  47. // reading the values from file using different string formats
  48. foreach($string_formats as $string_format) {
  49. // rewind the file so that for every foreach iteration the file pointer starts from bof
  50. rewind($file_handle);
  51. echo "\n-- iteration $counter --\n";
  52. while( !feof($file_handle) ) {
  53. try {
  54. var_dump(fscanf($file_handle,$string_format));
  55. } catch (ValueError $exception) {
  56. echo $exception->getMessage() . "\n";
  57. }
  58. }
  59. $counter++;
  60. }
  61. echo "\n*** Done ***";
  62. ?>
  63. --CLEAN--
  64. <?php
  65. $file_path = __DIR__;
  66. $filename = "$file_path/fscanf_variation17.tmp";
  67. unlink($filename);
  68. ?>
  69. --EXPECT--
  70. *** Test fscanf(): different string format types with arrays ***
  71. -- iteration 1 --
  72. array(1) {
  73. [0]=>
  74. string(5) "Array"
  75. }
  76. array(1) {
  77. [0]=>
  78. string(5) "Array"
  79. }
  80. array(1) {
  81. [0]=>
  82. string(5) "Array"
  83. }
  84. array(1) {
  85. [0]=>
  86. string(5) "Array"
  87. }
  88. array(1) {
  89. [0]=>
  90. string(5) "Array"
  91. }
  92. array(1) {
  93. [0]=>
  94. string(5) "Array"
  95. }
  96. array(1) {
  97. [0]=>
  98. string(5) "Array"
  99. }
  100. array(1) {
  101. [0]=>
  102. string(5) "Array"
  103. }
  104. array(1) {
  105. [0]=>
  106. string(5) "Array"
  107. }
  108. array(1) {
  109. [0]=>
  110. string(5) "Array"
  111. }
  112. array(1) {
  113. [0]=>
  114. string(5) "Array"
  115. }
  116. array(1) {
  117. [0]=>
  118. string(5) "Array"
  119. }
  120. bool(false)
  121. -- iteration 2 --
  122. array(1) {
  123. [0]=>
  124. string(5) "Array"
  125. }
  126. array(1) {
  127. [0]=>
  128. string(5) "Array"
  129. }
  130. array(1) {
  131. [0]=>
  132. string(5) "Array"
  133. }
  134. array(1) {
  135. [0]=>
  136. string(5) "Array"
  137. }
  138. array(1) {
  139. [0]=>
  140. string(5) "Array"
  141. }
  142. array(1) {
  143. [0]=>
  144. string(5) "Array"
  145. }
  146. array(1) {
  147. [0]=>
  148. string(5) "Array"
  149. }
  150. array(1) {
  151. [0]=>
  152. string(5) "Array"
  153. }
  154. array(1) {
  155. [0]=>
  156. string(5) "Array"
  157. }
  158. array(1) {
  159. [0]=>
  160. string(5) "Array"
  161. }
  162. array(1) {
  163. [0]=>
  164. string(5) "Array"
  165. }
  166. array(1) {
  167. [0]=>
  168. string(5) "Array"
  169. }
  170. bool(false)
  171. -- iteration 3 --
  172. array(1) {
  173. [0]=>
  174. string(5) "Array"
  175. }
  176. array(1) {
  177. [0]=>
  178. string(5) "Array"
  179. }
  180. array(1) {
  181. [0]=>
  182. string(5) "Array"
  183. }
  184. array(1) {
  185. [0]=>
  186. string(5) "Array"
  187. }
  188. array(1) {
  189. [0]=>
  190. string(5) "Array"
  191. }
  192. array(1) {
  193. [0]=>
  194. string(5) "Array"
  195. }
  196. array(1) {
  197. [0]=>
  198. string(5) "Array"
  199. }
  200. array(1) {
  201. [0]=>
  202. string(5) "Array"
  203. }
  204. array(1) {
  205. [0]=>
  206. string(5) "Array"
  207. }
  208. array(1) {
  209. [0]=>
  210. string(5) "Array"
  211. }
  212. array(1) {
  213. [0]=>
  214. string(5) "Array"
  215. }
  216. array(1) {
  217. [0]=>
  218. string(5) "Array"
  219. }
  220. bool(false)
  221. -- iteration 4 --
  222. array(1) {
  223. [0]=>
  224. string(5) "Array"
  225. }
  226. array(1) {
  227. [0]=>
  228. string(5) "Array"
  229. }
  230. array(1) {
  231. [0]=>
  232. string(5) "Array"
  233. }
  234. array(1) {
  235. [0]=>
  236. string(5) "Array"
  237. }
  238. array(1) {
  239. [0]=>
  240. string(5) "Array"
  241. }
  242. array(1) {
  243. [0]=>
  244. string(5) "Array"
  245. }
  246. array(1) {
  247. [0]=>
  248. string(5) "Array"
  249. }
  250. array(1) {
  251. [0]=>
  252. string(5) "Array"
  253. }
  254. array(1) {
  255. [0]=>
  256. string(5) "Array"
  257. }
  258. array(1) {
  259. [0]=>
  260. string(5) "Array"
  261. }
  262. array(1) {
  263. [0]=>
  264. string(5) "Array"
  265. }
  266. array(1) {
  267. [0]=>
  268. string(5) "Array"
  269. }
  270. bool(false)
  271. -- iteration 5 --
  272. array(1) {
  273. [0]=>
  274. string(5) "Array"
  275. }
  276. array(1) {
  277. [0]=>
  278. string(5) "Array"
  279. }
  280. array(1) {
  281. [0]=>
  282. string(5) "Array"
  283. }
  284. array(1) {
  285. [0]=>
  286. string(5) "Array"
  287. }
  288. array(1) {
  289. [0]=>
  290. string(5) "Array"
  291. }
  292. array(1) {
  293. [0]=>
  294. string(5) "Array"
  295. }
  296. array(1) {
  297. [0]=>
  298. string(5) "Array"
  299. }
  300. array(1) {
  301. [0]=>
  302. string(5) "Array"
  303. }
  304. array(1) {
  305. [0]=>
  306. string(5) "Array"
  307. }
  308. array(1) {
  309. [0]=>
  310. string(5) "Array"
  311. }
  312. array(1) {
  313. [0]=>
  314. string(5) "Array"
  315. }
  316. array(1) {
  317. [0]=>
  318. string(5) "Array"
  319. }
  320. bool(false)
  321. -- iteration 6 --
  322. array(1) {
  323. [0]=>
  324. string(5) "Array"
  325. }
  326. array(1) {
  327. [0]=>
  328. string(5) "Array"
  329. }
  330. array(1) {
  331. [0]=>
  332. string(5) "Array"
  333. }
  334. array(1) {
  335. [0]=>
  336. string(5) "Array"
  337. }
  338. array(1) {
  339. [0]=>
  340. string(5) "Array"
  341. }
  342. array(1) {
  343. [0]=>
  344. string(5) "Array"
  345. }
  346. array(1) {
  347. [0]=>
  348. string(5) "Array"
  349. }
  350. array(1) {
  351. [0]=>
  352. string(5) "Array"
  353. }
  354. array(1) {
  355. [0]=>
  356. string(5) "Array"
  357. }
  358. array(1) {
  359. [0]=>
  360. string(5) "Array"
  361. }
  362. array(1) {
  363. [0]=>
  364. string(5) "Array"
  365. }
  366. array(1) {
  367. [0]=>
  368. string(5) "Array"
  369. }
  370. bool(false)
  371. -- iteration 7 --
  372. Bad scan conversion character " "
  373. Bad scan conversion character " "
  374. Bad scan conversion character " "
  375. Bad scan conversion character " "
  376. Bad scan conversion character " "
  377. Bad scan conversion character " "
  378. Bad scan conversion character " "
  379. Bad scan conversion character " "
  380. Bad scan conversion character " "
  381. Bad scan conversion character " "
  382. Bad scan conversion character " "
  383. Bad scan conversion character " "
  384. bool(false)
  385. -- iteration 8 --
  386. array(1) {
  387. [0]=>
  388. string(5) "Array"
  389. }
  390. array(1) {
  391. [0]=>
  392. string(5) "Array"
  393. }
  394. array(1) {
  395. [0]=>
  396. string(5) "Array"
  397. }
  398. array(1) {
  399. [0]=>
  400. string(5) "Array"
  401. }
  402. array(1) {
  403. [0]=>
  404. string(5) "Array"
  405. }
  406. array(1) {
  407. [0]=>
  408. string(5) "Array"
  409. }
  410. array(1) {
  411. [0]=>
  412. string(5) "Array"
  413. }
  414. array(1) {
  415. [0]=>
  416. string(5) "Array"
  417. }
  418. array(1) {
  419. [0]=>
  420. string(5) "Array"
  421. }
  422. array(1) {
  423. [0]=>
  424. string(5) "Array"
  425. }
  426. array(1) {
  427. [0]=>
  428. string(5) "Array"
  429. }
  430. array(1) {
  431. [0]=>
  432. string(5) "Array"
  433. }
  434. bool(false)
  435. -- iteration 9 --
  436. array(1) {
  437. [0]=>
  438. string(5) "Array"
  439. }
  440. array(1) {
  441. [0]=>
  442. string(5) "Array"
  443. }
  444. array(1) {
  445. [0]=>
  446. string(5) "Array"
  447. }
  448. array(1) {
  449. [0]=>
  450. string(5) "Array"
  451. }
  452. array(1) {
  453. [0]=>
  454. string(5) "Array"
  455. }
  456. array(1) {
  457. [0]=>
  458. string(5) "Array"
  459. }
  460. array(1) {
  461. [0]=>
  462. string(5) "Array"
  463. }
  464. array(1) {
  465. [0]=>
  466. string(5) "Array"
  467. }
  468. array(1) {
  469. [0]=>
  470. string(5) "Array"
  471. }
  472. array(1) {
  473. [0]=>
  474. string(5) "Array"
  475. }
  476. array(1) {
  477. [0]=>
  478. string(5) "Array"
  479. }
  480. array(1) {
  481. [0]=>
  482. string(5) "Array"
  483. }
  484. bool(false)
  485. -- iteration 10 --
  486. array(1) {
  487. [0]=>
  488. string(4) "Arra"
  489. }
  490. array(1) {
  491. [0]=>
  492. string(4) "Arra"
  493. }
  494. array(1) {
  495. [0]=>
  496. string(4) "Arra"
  497. }
  498. array(1) {
  499. [0]=>
  500. string(4) "Arra"
  501. }
  502. array(1) {
  503. [0]=>
  504. string(4) "Arra"
  505. }
  506. array(1) {
  507. [0]=>
  508. string(4) "Arra"
  509. }
  510. array(1) {
  511. [0]=>
  512. string(4) "Arra"
  513. }
  514. array(1) {
  515. [0]=>
  516. string(4) "Arra"
  517. }
  518. array(1) {
  519. [0]=>
  520. string(4) "Arra"
  521. }
  522. array(1) {
  523. [0]=>
  524. string(4) "Arra"
  525. }
  526. array(1) {
  527. [0]=>
  528. string(4) "Arra"
  529. }
  530. array(1) {
  531. [0]=>
  532. string(4) "Arra"
  533. }
  534. bool(false)
  535. -- iteration 11 --
  536. array(1) {
  537. [0]=>
  538. string(5) "Array"
  539. }
  540. array(1) {
  541. [0]=>
  542. string(5) "Array"
  543. }
  544. array(1) {
  545. [0]=>
  546. string(5) "Array"
  547. }
  548. array(1) {
  549. [0]=>
  550. string(5) "Array"
  551. }
  552. array(1) {
  553. [0]=>
  554. string(5) "Array"
  555. }
  556. array(1) {
  557. [0]=>
  558. string(5) "Array"
  559. }
  560. array(1) {
  561. [0]=>
  562. string(5) "Array"
  563. }
  564. array(1) {
  565. [0]=>
  566. string(5) "Array"
  567. }
  568. array(1) {
  569. [0]=>
  570. string(5) "Array"
  571. }
  572. array(1) {
  573. [0]=>
  574. string(5) "Array"
  575. }
  576. array(1) {
  577. [0]=>
  578. string(5) "Array"
  579. }
  580. array(1) {
  581. [0]=>
  582. string(5) "Array"
  583. }
  584. bool(false)
  585. -- iteration 12 --
  586. array(1) {
  587. [0]=>
  588. string(5) "Array"
  589. }
  590. array(1) {
  591. [0]=>
  592. string(5) "Array"
  593. }
  594. array(1) {
  595. [0]=>
  596. string(5) "Array"
  597. }
  598. array(1) {
  599. [0]=>
  600. string(5) "Array"
  601. }
  602. array(1) {
  603. [0]=>
  604. string(5) "Array"
  605. }
  606. array(1) {
  607. [0]=>
  608. string(5) "Array"
  609. }
  610. array(1) {
  611. [0]=>
  612. string(5) "Array"
  613. }
  614. array(1) {
  615. [0]=>
  616. string(5) "Array"
  617. }
  618. array(1) {
  619. [0]=>
  620. string(5) "Array"
  621. }
  622. array(1) {
  623. [0]=>
  624. string(5) "Array"
  625. }
  626. array(1) {
  627. [0]=>
  628. string(5) "Array"
  629. }
  630. array(1) {
  631. [0]=>
  632. string(5) "Array"
  633. }
  634. bool(false)
  635. -- iteration 13 --
  636. array(0) {
  637. }
  638. array(0) {
  639. }
  640. array(0) {
  641. }
  642. array(0) {
  643. }
  644. array(0) {
  645. }
  646. array(0) {
  647. }
  648. array(0) {
  649. }
  650. array(0) {
  651. }
  652. array(0) {
  653. }
  654. array(0) {
  655. }
  656. array(0) {
  657. }
  658. array(0) {
  659. }
  660. bool(false)
  661. *** Done ***