fscanf_variation23.phpt 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. --TEST--
  2. Test fscanf() function: usage variations - char formats with arrays
  3. --FILE--
  4. <?php
  5. /*
  6. Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
  7. Description: Parses input from a file according to a format
  8. */
  9. /* Test fscanf() to scan arrays using different char format types */
  10. $file_path = dirname(__FILE__);
  11. echo "*** Test fscanf(): different char format types with arrays ***\n";
  12. // create a file
  13. $filename = "$file_path/fscanf_variation23.tmp";
  14. $file_handle = fopen($filename, "w");
  15. if($file_handle == false)
  16. exit("Error:failed to open file $filename");
  17. // array types
  18. $array_types = array (
  19. array(),
  20. array(0),
  21. array(1),
  22. array(NULL),
  23. array(null),
  24. array("string"),
  25. array(true),
  26. array(TRUE),
  27. array(false),
  28. array(FALSE),
  29. array(1,2,3,4),
  30. array(1 => "One", "two" => 2)
  31. );
  32. $char_formats = array( "%c",
  33. "%hc", "%lc", "%Lc",
  34. " %c", "%c ", "% c",
  35. "\t%c", "\n%c", "%4c",
  36. "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
  37. $counter = 1;
  38. // writing to the file
  39. foreach($array_types as $value) {
  40. @fprintf($file_handle, $value);
  41. @fprintf($file_handle, "\n");
  42. }
  43. // closing the file
  44. fclose($file_handle);
  45. // opening the file for reading
  46. $file_handle = fopen($filename, "r");
  47. if($file_handle == false) {
  48. exit("Error:failed to open file $filename");
  49. }
  50. $counter = 1;
  51. // reading the values from file using different char formats
  52. foreach($char_formats as $char_format) {
  53. // rewind the file so that for every foreach iteration the file pointer starts from bof
  54. rewind($file_handle);
  55. echo "\n-- iteration $counter --\n";
  56. while( !feof($file_handle) ) {
  57. var_dump( fscanf($file_handle,$char_format) );
  58. }
  59. $counter++;
  60. }
  61. echo "\n*** Done ***";
  62. ?>
  63. --CLEAN--
  64. <?php
  65. $file_path = dirname(__FILE__);
  66. $filename = "$file_path/fscanf_variation23.tmp";
  67. unlink($filename);
  68. ?>
  69. --EXPECTF--
  70. *** Test fscanf(): different char format types with arrays ***
  71. -- iteration 1 --
  72. array(1) {
  73. [0]=>
  74. string(1) "A"
  75. }
  76. array(1) {
  77. [0]=>
  78. string(1) "A"
  79. }
  80. array(1) {
  81. [0]=>
  82. string(1) "A"
  83. }
  84. array(1) {
  85. [0]=>
  86. string(1) "A"
  87. }
  88. array(1) {
  89. [0]=>
  90. string(1) "A"
  91. }
  92. array(1) {
  93. [0]=>
  94. string(1) "A"
  95. }
  96. array(1) {
  97. [0]=>
  98. string(1) "A"
  99. }
  100. array(1) {
  101. [0]=>
  102. string(1) "A"
  103. }
  104. array(1) {
  105. [0]=>
  106. string(1) "A"
  107. }
  108. array(1) {
  109. [0]=>
  110. string(1) "A"
  111. }
  112. array(1) {
  113. [0]=>
  114. string(1) "A"
  115. }
  116. array(1) {
  117. [0]=>
  118. string(1) "A"
  119. }
  120. bool(false)
  121. -- iteration 2 --
  122. array(1) {
  123. [0]=>
  124. string(1) "A"
  125. }
  126. array(1) {
  127. [0]=>
  128. string(1) "A"
  129. }
  130. array(1) {
  131. [0]=>
  132. string(1) "A"
  133. }
  134. array(1) {
  135. [0]=>
  136. string(1) "A"
  137. }
  138. array(1) {
  139. [0]=>
  140. string(1) "A"
  141. }
  142. array(1) {
  143. [0]=>
  144. string(1) "A"
  145. }
  146. array(1) {
  147. [0]=>
  148. string(1) "A"
  149. }
  150. array(1) {
  151. [0]=>
  152. string(1) "A"
  153. }
  154. array(1) {
  155. [0]=>
  156. string(1) "A"
  157. }
  158. array(1) {
  159. [0]=>
  160. string(1) "A"
  161. }
  162. array(1) {
  163. [0]=>
  164. string(1) "A"
  165. }
  166. array(1) {
  167. [0]=>
  168. string(1) "A"
  169. }
  170. bool(false)
  171. -- iteration 3 --
  172. array(1) {
  173. [0]=>
  174. string(1) "A"
  175. }
  176. array(1) {
  177. [0]=>
  178. string(1) "A"
  179. }
  180. array(1) {
  181. [0]=>
  182. string(1) "A"
  183. }
  184. array(1) {
  185. [0]=>
  186. string(1) "A"
  187. }
  188. array(1) {
  189. [0]=>
  190. string(1) "A"
  191. }
  192. array(1) {
  193. [0]=>
  194. string(1) "A"
  195. }
  196. array(1) {
  197. [0]=>
  198. string(1) "A"
  199. }
  200. array(1) {
  201. [0]=>
  202. string(1) "A"
  203. }
  204. array(1) {
  205. [0]=>
  206. string(1) "A"
  207. }
  208. array(1) {
  209. [0]=>
  210. string(1) "A"
  211. }
  212. array(1) {
  213. [0]=>
  214. string(1) "A"
  215. }
  216. array(1) {
  217. [0]=>
  218. string(1) "A"
  219. }
  220. bool(false)
  221. -- iteration 4 --
  222. array(1) {
  223. [0]=>
  224. string(1) "A"
  225. }
  226. array(1) {
  227. [0]=>
  228. string(1) "A"
  229. }
  230. array(1) {
  231. [0]=>
  232. string(1) "A"
  233. }
  234. array(1) {
  235. [0]=>
  236. string(1) "A"
  237. }
  238. array(1) {
  239. [0]=>
  240. string(1) "A"
  241. }
  242. array(1) {
  243. [0]=>
  244. string(1) "A"
  245. }
  246. array(1) {
  247. [0]=>
  248. string(1) "A"
  249. }
  250. array(1) {
  251. [0]=>
  252. string(1) "A"
  253. }
  254. array(1) {
  255. [0]=>
  256. string(1) "A"
  257. }
  258. array(1) {
  259. [0]=>
  260. string(1) "A"
  261. }
  262. array(1) {
  263. [0]=>
  264. string(1) "A"
  265. }
  266. array(1) {
  267. [0]=>
  268. string(1) "A"
  269. }
  270. bool(false)
  271. -- iteration 5 --
  272. array(1) {
  273. [0]=>
  274. string(1) "A"
  275. }
  276. array(1) {
  277. [0]=>
  278. string(1) "A"
  279. }
  280. array(1) {
  281. [0]=>
  282. string(1) "A"
  283. }
  284. array(1) {
  285. [0]=>
  286. string(1) "A"
  287. }
  288. array(1) {
  289. [0]=>
  290. string(1) "A"
  291. }
  292. array(1) {
  293. [0]=>
  294. string(1) "A"
  295. }
  296. array(1) {
  297. [0]=>
  298. string(1) "A"
  299. }
  300. array(1) {
  301. [0]=>
  302. string(1) "A"
  303. }
  304. array(1) {
  305. [0]=>
  306. string(1) "A"
  307. }
  308. array(1) {
  309. [0]=>
  310. string(1) "A"
  311. }
  312. array(1) {
  313. [0]=>
  314. string(1) "A"
  315. }
  316. array(1) {
  317. [0]=>
  318. string(1) "A"
  319. }
  320. bool(false)
  321. -- iteration 6 --
  322. array(1) {
  323. [0]=>
  324. string(1) "A"
  325. }
  326. array(1) {
  327. [0]=>
  328. string(1) "A"
  329. }
  330. array(1) {
  331. [0]=>
  332. string(1) "A"
  333. }
  334. array(1) {
  335. [0]=>
  336. string(1) "A"
  337. }
  338. array(1) {
  339. [0]=>
  340. string(1) "A"
  341. }
  342. array(1) {
  343. [0]=>
  344. string(1) "A"
  345. }
  346. array(1) {
  347. [0]=>
  348. string(1) "A"
  349. }
  350. array(1) {
  351. [0]=>
  352. string(1) "A"
  353. }
  354. array(1) {
  355. [0]=>
  356. string(1) "A"
  357. }
  358. array(1) {
  359. [0]=>
  360. string(1) "A"
  361. }
  362. array(1) {
  363. [0]=>
  364. string(1) "A"
  365. }
  366. array(1) {
  367. [0]=>
  368. string(1) "A"
  369. }
  370. bool(false)
  371. -- iteration 7 --
  372. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  373. NULL
  374. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  375. NULL
  376. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  377. NULL
  378. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  379. NULL
  380. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  381. NULL
  382. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  383. NULL
  384. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  385. NULL
  386. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  387. NULL
  388. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  389. NULL
  390. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  391. NULL
  392. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  393. NULL
  394. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  395. NULL
  396. bool(false)
  397. -- iteration 8 --
  398. array(1) {
  399. [0]=>
  400. string(1) "A"
  401. }
  402. array(1) {
  403. [0]=>
  404. string(1) "A"
  405. }
  406. array(1) {
  407. [0]=>
  408. string(1) "A"
  409. }
  410. array(1) {
  411. [0]=>
  412. string(1) "A"
  413. }
  414. array(1) {
  415. [0]=>
  416. string(1) "A"
  417. }
  418. array(1) {
  419. [0]=>
  420. string(1) "A"
  421. }
  422. array(1) {
  423. [0]=>
  424. string(1) "A"
  425. }
  426. array(1) {
  427. [0]=>
  428. string(1) "A"
  429. }
  430. array(1) {
  431. [0]=>
  432. string(1) "A"
  433. }
  434. array(1) {
  435. [0]=>
  436. string(1) "A"
  437. }
  438. array(1) {
  439. [0]=>
  440. string(1) "A"
  441. }
  442. array(1) {
  443. [0]=>
  444. string(1) "A"
  445. }
  446. bool(false)
  447. -- iteration 9 --
  448. array(1) {
  449. [0]=>
  450. string(1) "A"
  451. }
  452. array(1) {
  453. [0]=>
  454. string(1) "A"
  455. }
  456. array(1) {
  457. [0]=>
  458. string(1) "A"
  459. }
  460. array(1) {
  461. [0]=>
  462. string(1) "A"
  463. }
  464. array(1) {
  465. [0]=>
  466. string(1) "A"
  467. }
  468. array(1) {
  469. [0]=>
  470. string(1) "A"
  471. }
  472. array(1) {
  473. [0]=>
  474. string(1) "A"
  475. }
  476. array(1) {
  477. [0]=>
  478. string(1) "A"
  479. }
  480. array(1) {
  481. [0]=>
  482. string(1) "A"
  483. }
  484. array(1) {
  485. [0]=>
  486. string(1) "A"
  487. }
  488. array(1) {
  489. [0]=>
  490. string(1) "A"
  491. }
  492. array(1) {
  493. [0]=>
  494. string(1) "A"
  495. }
  496. bool(false)
  497. -- iteration 10 --
  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. array(1) {
  535. [0]=>
  536. string(4) "Arra"
  537. }
  538. array(1) {
  539. [0]=>
  540. string(4) "Arra"
  541. }
  542. array(1) {
  543. [0]=>
  544. string(4) "Arra"
  545. }
  546. bool(false)
  547. -- iteration 11 --
  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. array(1) {
  585. [0]=>
  586. string(5) "Array"
  587. }
  588. array(1) {
  589. [0]=>
  590. string(5) "Array"
  591. }
  592. array(1) {
  593. [0]=>
  594. string(5) "Array"
  595. }
  596. bool(false)
  597. -- iteration 12 --
  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. array(1) {
  635. [0]=>
  636. string(5) "Array"
  637. }
  638. array(1) {
  639. [0]=>
  640. string(5) "Array"
  641. }
  642. array(1) {
  643. [0]=>
  644. string(5) "Array"
  645. }
  646. bool(false)
  647. -- iteration 13 --
  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. array(0) {
  661. }
  662. array(0) {
  663. }
  664. array(0) {
  665. }
  666. array(0) {
  667. }
  668. array(0) {
  669. }
  670. array(0) {
  671. }
  672. bool(false)
  673. *** Done ***