fscanf_variation5.phpt 6.4 KB

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