fscanf_variation20.phpt 11 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012
  1. --TEST--
  2. Test fscanf() function: usage variations - char formats with integer values
  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 different integer values using different char format types */
  10. $file_path = dirname(__FILE__);
  11. echo "*** Test fscanf(): different char format types with different integer values ***\n";
  12. // create a file
  13. $filename = "$file_path/fscanf_variation20.tmp";
  14. $file_handle = fopen($filename, "w");
  15. if($file_handle == false)
  16. exit("Error:failed to open file $filename");
  17. // different valid integer vlaues
  18. $valid_ints = array(
  19. 0,
  20. 1,
  21. -1,
  22. -2147483648, // max negative integer value
  23. -2147483647,
  24. 2147483647, // max positive integer value
  25. 2147483640,
  26. 0x123B, // integer as hexadecimal
  27. 0x12ab,
  28. 0Xfff,
  29. 0XFA,
  30. -0x80000000, // max negative integer as hexadecimal
  31. 0x7fffffff, // max postive integer as hexadecimal
  32. 0x7FFFFFFF, // max postive integer as hexadecimal
  33. 0123, // integer as octal
  34. 01912, // should be quivalent to octal 1
  35. -020000000000, // max negative integer as octal
  36. 017777777777 // max positive integer as octal
  37. );
  38. // various char formats
  39. $char_formats = array( "%c",
  40. "%hc", "%lc", "%Lc",
  41. " %c", "%c ", "% c",
  42. "\t%c", "\n%c", "%4c",
  43. "%30c", "%[a-bA-B@#$&]", "%*c");
  44. $counter = 1;
  45. // writing to the file
  46. foreach($valid_ints as $int_value) {
  47. @fprintf($file_handle, $int_value);
  48. @fprintf($file_handle, "\n");
  49. }
  50. // closing the file
  51. fclose($file_handle);
  52. // opening the file for reading
  53. $file_handle = fopen($filename, "r");
  54. if($file_handle == false) {
  55. exit("Error:failed to open file $filename");
  56. }
  57. $counter = 1;
  58. // reading the values from file using different char formats
  59. foreach($char_formats as $char_format) {
  60. // rewind the file so that for every foreach iteration the file pointer starts from bof
  61. rewind($file_handle);
  62. echo "\n-- iteration $counter --\n";
  63. while( !feof($file_handle) ) {
  64. var_dump( fscanf($file_handle,$char_format) );
  65. }
  66. $counter++;
  67. }
  68. echo "\n*** Done ***";
  69. ?>
  70. --CLEAN--
  71. <?php
  72. $file_path = dirname(__FILE__);
  73. $filename = "$file_path/fscanf_variation20.tmp";
  74. unlink($filename);
  75. ?>
  76. --EXPECTF--
  77. *** Test fscanf(): different char format types with different integer values ***
  78. -- iteration 1 --
  79. array(1) {
  80. [0]=>
  81. string(1) "0"
  82. }
  83. array(1) {
  84. [0]=>
  85. string(1) "1"
  86. }
  87. array(1) {
  88. [0]=>
  89. string(1) "-"
  90. }
  91. array(1) {
  92. [0]=>
  93. string(1) "-"
  94. }
  95. array(1) {
  96. [0]=>
  97. string(1) "-"
  98. }
  99. array(1) {
  100. [0]=>
  101. string(1) "2"
  102. }
  103. array(1) {
  104. [0]=>
  105. string(1) "2"
  106. }
  107. array(1) {
  108. [0]=>
  109. string(1) "4"
  110. }
  111. array(1) {
  112. [0]=>
  113. string(1) "4"
  114. }
  115. array(1) {
  116. [0]=>
  117. string(1) "4"
  118. }
  119. array(1) {
  120. [0]=>
  121. string(1) "2"
  122. }
  123. array(1) {
  124. [0]=>
  125. string(1) "-"
  126. }
  127. array(1) {
  128. [0]=>
  129. string(1) "2"
  130. }
  131. array(1) {
  132. [0]=>
  133. string(1) "2"
  134. }
  135. array(1) {
  136. [0]=>
  137. string(1) "8"
  138. }
  139. array(1) {
  140. [0]=>
  141. string(1) "1"
  142. }
  143. array(1) {
  144. [0]=>
  145. string(1) "-"
  146. }
  147. array(1) {
  148. [0]=>
  149. string(1) "2"
  150. }
  151. bool(false)
  152. -- iteration 2 --
  153. array(1) {
  154. [0]=>
  155. string(1) "0"
  156. }
  157. array(1) {
  158. [0]=>
  159. string(1) "1"
  160. }
  161. array(1) {
  162. [0]=>
  163. string(1) "-"
  164. }
  165. array(1) {
  166. [0]=>
  167. string(1) "-"
  168. }
  169. array(1) {
  170. [0]=>
  171. string(1) "-"
  172. }
  173. array(1) {
  174. [0]=>
  175. string(1) "2"
  176. }
  177. array(1) {
  178. [0]=>
  179. string(1) "2"
  180. }
  181. array(1) {
  182. [0]=>
  183. string(1) "4"
  184. }
  185. array(1) {
  186. [0]=>
  187. string(1) "4"
  188. }
  189. array(1) {
  190. [0]=>
  191. string(1) "4"
  192. }
  193. array(1) {
  194. [0]=>
  195. string(1) "2"
  196. }
  197. array(1) {
  198. [0]=>
  199. string(1) "-"
  200. }
  201. array(1) {
  202. [0]=>
  203. string(1) "2"
  204. }
  205. array(1) {
  206. [0]=>
  207. string(1) "2"
  208. }
  209. array(1) {
  210. [0]=>
  211. string(1) "8"
  212. }
  213. array(1) {
  214. [0]=>
  215. string(1) "1"
  216. }
  217. array(1) {
  218. [0]=>
  219. string(1) "-"
  220. }
  221. array(1) {
  222. [0]=>
  223. string(1) "2"
  224. }
  225. bool(false)
  226. -- iteration 3 --
  227. array(1) {
  228. [0]=>
  229. string(1) "0"
  230. }
  231. array(1) {
  232. [0]=>
  233. string(1) "1"
  234. }
  235. array(1) {
  236. [0]=>
  237. string(1) "-"
  238. }
  239. array(1) {
  240. [0]=>
  241. string(1) "-"
  242. }
  243. array(1) {
  244. [0]=>
  245. string(1) "-"
  246. }
  247. array(1) {
  248. [0]=>
  249. string(1) "2"
  250. }
  251. array(1) {
  252. [0]=>
  253. string(1) "2"
  254. }
  255. array(1) {
  256. [0]=>
  257. string(1) "4"
  258. }
  259. array(1) {
  260. [0]=>
  261. string(1) "4"
  262. }
  263. array(1) {
  264. [0]=>
  265. string(1) "4"
  266. }
  267. array(1) {
  268. [0]=>
  269. string(1) "2"
  270. }
  271. array(1) {
  272. [0]=>
  273. string(1) "-"
  274. }
  275. array(1) {
  276. [0]=>
  277. string(1) "2"
  278. }
  279. array(1) {
  280. [0]=>
  281. string(1) "2"
  282. }
  283. array(1) {
  284. [0]=>
  285. string(1) "8"
  286. }
  287. array(1) {
  288. [0]=>
  289. string(1) "1"
  290. }
  291. array(1) {
  292. [0]=>
  293. string(1) "-"
  294. }
  295. array(1) {
  296. [0]=>
  297. string(1) "2"
  298. }
  299. bool(false)
  300. -- iteration 4 --
  301. array(1) {
  302. [0]=>
  303. string(1) "0"
  304. }
  305. array(1) {
  306. [0]=>
  307. string(1) "1"
  308. }
  309. array(1) {
  310. [0]=>
  311. string(1) "-"
  312. }
  313. array(1) {
  314. [0]=>
  315. string(1) "-"
  316. }
  317. array(1) {
  318. [0]=>
  319. string(1) "-"
  320. }
  321. array(1) {
  322. [0]=>
  323. string(1) "2"
  324. }
  325. array(1) {
  326. [0]=>
  327. string(1) "2"
  328. }
  329. array(1) {
  330. [0]=>
  331. string(1) "4"
  332. }
  333. array(1) {
  334. [0]=>
  335. string(1) "4"
  336. }
  337. array(1) {
  338. [0]=>
  339. string(1) "4"
  340. }
  341. array(1) {
  342. [0]=>
  343. string(1) "2"
  344. }
  345. array(1) {
  346. [0]=>
  347. string(1) "-"
  348. }
  349. array(1) {
  350. [0]=>
  351. string(1) "2"
  352. }
  353. array(1) {
  354. [0]=>
  355. string(1) "2"
  356. }
  357. array(1) {
  358. [0]=>
  359. string(1) "8"
  360. }
  361. array(1) {
  362. [0]=>
  363. string(1) "1"
  364. }
  365. array(1) {
  366. [0]=>
  367. string(1) "-"
  368. }
  369. array(1) {
  370. [0]=>
  371. string(1) "2"
  372. }
  373. bool(false)
  374. -- iteration 5 --
  375. array(1) {
  376. [0]=>
  377. string(1) "0"
  378. }
  379. array(1) {
  380. [0]=>
  381. string(1) "1"
  382. }
  383. array(1) {
  384. [0]=>
  385. string(1) "-"
  386. }
  387. array(1) {
  388. [0]=>
  389. string(1) "-"
  390. }
  391. array(1) {
  392. [0]=>
  393. string(1) "-"
  394. }
  395. array(1) {
  396. [0]=>
  397. string(1) "2"
  398. }
  399. array(1) {
  400. [0]=>
  401. string(1) "2"
  402. }
  403. array(1) {
  404. [0]=>
  405. string(1) "4"
  406. }
  407. array(1) {
  408. [0]=>
  409. string(1) "4"
  410. }
  411. array(1) {
  412. [0]=>
  413. string(1) "4"
  414. }
  415. array(1) {
  416. [0]=>
  417. string(1) "2"
  418. }
  419. array(1) {
  420. [0]=>
  421. string(1) "-"
  422. }
  423. array(1) {
  424. [0]=>
  425. string(1) "2"
  426. }
  427. array(1) {
  428. [0]=>
  429. string(1) "2"
  430. }
  431. array(1) {
  432. [0]=>
  433. string(1) "8"
  434. }
  435. array(1) {
  436. [0]=>
  437. string(1) "1"
  438. }
  439. array(1) {
  440. [0]=>
  441. string(1) "-"
  442. }
  443. array(1) {
  444. [0]=>
  445. string(1) "2"
  446. }
  447. bool(false)
  448. -- iteration 6 --
  449. array(1) {
  450. [0]=>
  451. string(1) "0"
  452. }
  453. array(1) {
  454. [0]=>
  455. string(1) "1"
  456. }
  457. array(1) {
  458. [0]=>
  459. string(1) "-"
  460. }
  461. array(1) {
  462. [0]=>
  463. string(1) "-"
  464. }
  465. array(1) {
  466. [0]=>
  467. string(1) "-"
  468. }
  469. array(1) {
  470. [0]=>
  471. string(1) "2"
  472. }
  473. array(1) {
  474. [0]=>
  475. string(1) "2"
  476. }
  477. array(1) {
  478. [0]=>
  479. string(1) "4"
  480. }
  481. array(1) {
  482. [0]=>
  483. string(1) "4"
  484. }
  485. array(1) {
  486. [0]=>
  487. string(1) "4"
  488. }
  489. array(1) {
  490. [0]=>
  491. string(1) "2"
  492. }
  493. array(1) {
  494. [0]=>
  495. string(1) "-"
  496. }
  497. array(1) {
  498. [0]=>
  499. string(1) "2"
  500. }
  501. array(1) {
  502. [0]=>
  503. string(1) "2"
  504. }
  505. array(1) {
  506. [0]=>
  507. string(1) "8"
  508. }
  509. array(1) {
  510. [0]=>
  511. string(1) "1"
  512. }
  513. array(1) {
  514. [0]=>
  515. string(1) "-"
  516. }
  517. array(1) {
  518. [0]=>
  519. string(1) "2"
  520. }
  521. bool(false)
  522. -- iteration 7 --
  523. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  524. NULL
  525. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  526. NULL
  527. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  528. NULL
  529. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  530. NULL
  531. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  532. NULL
  533. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  534. NULL
  535. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  536. NULL
  537. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  538. NULL
  539. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  540. NULL
  541. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  542. NULL
  543. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  544. NULL
  545. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  546. NULL
  547. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  548. NULL
  549. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  550. NULL
  551. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  552. NULL
  553. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  554. NULL
  555. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  556. NULL
  557. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  558. NULL
  559. bool(false)
  560. -- iteration 8 --
  561. array(1) {
  562. [0]=>
  563. string(1) "0"
  564. }
  565. array(1) {
  566. [0]=>
  567. string(1) "1"
  568. }
  569. array(1) {
  570. [0]=>
  571. string(1) "-"
  572. }
  573. array(1) {
  574. [0]=>
  575. string(1) "-"
  576. }
  577. array(1) {
  578. [0]=>
  579. string(1) "-"
  580. }
  581. array(1) {
  582. [0]=>
  583. string(1) "2"
  584. }
  585. array(1) {
  586. [0]=>
  587. string(1) "2"
  588. }
  589. array(1) {
  590. [0]=>
  591. string(1) "4"
  592. }
  593. array(1) {
  594. [0]=>
  595. string(1) "4"
  596. }
  597. array(1) {
  598. [0]=>
  599. string(1) "4"
  600. }
  601. array(1) {
  602. [0]=>
  603. string(1) "2"
  604. }
  605. array(1) {
  606. [0]=>
  607. string(1) "-"
  608. }
  609. array(1) {
  610. [0]=>
  611. string(1) "2"
  612. }
  613. array(1) {
  614. [0]=>
  615. string(1) "2"
  616. }
  617. array(1) {
  618. [0]=>
  619. string(1) "8"
  620. }
  621. array(1) {
  622. [0]=>
  623. string(1) "1"
  624. }
  625. array(1) {
  626. [0]=>
  627. string(1) "-"
  628. }
  629. array(1) {
  630. [0]=>
  631. string(1) "2"
  632. }
  633. bool(false)
  634. -- iteration 9 --
  635. array(1) {
  636. [0]=>
  637. string(1) "0"
  638. }
  639. array(1) {
  640. [0]=>
  641. string(1) "1"
  642. }
  643. array(1) {
  644. [0]=>
  645. string(1) "-"
  646. }
  647. array(1) {
  648. [0]=>
  649. string(1) "-"
  650. }
  651. array(1) {
  652. [0]=>
  653. string(1) "-"
  654. }
  655. array(1) {
  656. [0]=>
  657. string(1) "2"
  658. }
  659. array(1) {
  660. [0]=>
  661. string(1) "2"
  662. }
  663. array(1) {
  664. [0]=>
  665. string(1) "4"
  666. }
  667. array(1) {
  668. [0]=>
  669. string(1) "4"
  670. }
  671. array(1) {
  672. [0]=>
  673. string(1) "4"
  674. }
  675. array(1) {
  676. [0]=>
  677. string(1) "2"
  678. }
  679. array(1) {
  680. [0]=>
  681. string(1) "-"
  682. }
  683. array(1) {
  684. [0]=>
  685. string(1) "2"
  686. }
  687. array(1) {
  688. [0]=>
  689. string(1) "2"
  690. }
  691. array(1) {
  692. [0]=>
  693. string(1) "8"
  694. }
  695. array(1) {
  696. [0]=>
  697. string(1) "1"
  698. }
  699. array(1) {
  700. [0]=>
  701. string(1) "-"
  702. }
  703. array(1) {
  704. [0]=>
  705. string(1) "2"
  706. }
  707. bool(false)
  708. -- iteration 10 --
  709. array(1) {
  710. [0]=>
  711. string(1) "0"
  712. }
  713. array(1) {
  714. [0]=>
  715. string(1) "1"
  716. }
  717. array(1) {
  718. [0]=>
  719. string(2) "-1"
  720. }
  721. array(1) {
  722. [0]=>
  723. string(4) "-214"
  724. }
  725. array(1) {
  726. [0]=>
  727. string(4) "-214"
  728. }
  729. array(1) {
  730. [0]=>
  731. string(4) "2147"
  732. }
  733. array(1) {
  734. [0]=>
  735. string(4) "2147"
  736. }
  737. array(1) {
  738. [0]=>
  739. string(4) "4667"
  740. }
  741. array(1) {
  742. [0]=>
  743. string(4) "4779"
  744. }
  745. array(1) {
  746. [0]=>
  747. string(4) "4095"
  748. }
  749. array(1) {
  750. [0]=>
  751. string(3) "250"
  752. }
  753. array(1) {
  754. [0]=>
  755. string(4) "-214"
  756. }
  757. array(1) {
  758. [0]=>
  759. string(4) "2147"
  760. }
  761. array(1) {
  762. [0]=>
  763. string(4) "2147"
  764. }
  765. array(1) {
  766. [0]=>
  767. string(2) "83"
  768. }
  769. array(1) {
  770. [0]=>
  771. string(1) "1"
  772. }
  773. array(1) {
  774. [0]=>
  775. string(4) "-214"
  776. }
  777. array(1) {
  778. [0]=>
  779. string(4) "2147"
  780. }
  781. bool(false)
  782. -- iteration 11 --
  783. array(1) {
  784. [0]=>
  785. string(1) "0"
  786. }
  787. array(1) {
  788. [0]=>
  789. string(1) "1"
  790. }
  791. array(1) {
  792. [0]=>
  793. string(2) "-1"
  794. }
  795. array(1) {
  796. [0]=>
  797. string(11) "-2147483648"
  798. }
  799. array(1) {
  800. [0]=>
  801. string(11) "-2147483647"
  802. }
  803. array(1) {
  804. [0]=>
  805. string(10) "2147483647"
  806. }
  807. array(1) {
  808. [0]=>
  809. string(10) "2147483640"
  810. }
  811. array(1) {
  812. [0]=>
  813. string(4) "4667"
  814. }
  815. array(1) {
  816. [0]=>
  817. string(4) "4779"
  818. }
  819. array(1) {
  820. [0]=>
  821. string(4) "4095"
  822. }
  823. array(1) {
  824. [0]=>
  825. string(3) "250"
  826. }
  827. array(1) {
  828. [0]=>
  829. string(11) "-2147483648"
  830. }
  831. array(1) {
  832. [0]=>
  833. string(10) "2147483647"
  834. }
  835. array(1) {
  836. [0]=>
  837. string(10) "2147483647"
  838. }
  839. array(1) {
  840. [0]=>
  841. string(2) "83"
  842. }
  843. array(1) {
  844. [0]=>
  845. string(1) "1"
  846. }
  847. array(1) {
  848. [0]=>
  849. string(11) "-2147483648"
  850. }
  851. array(1) {
  852. [0]=>
  853. string(10) "2147483647"
  854. }
  855. bool(false)
  856. -- iteration 12 --
  857. array(1) {
  858. [0]=>
  859. NULL
  860. }
  861. array(1) {
  862. [0]=>
  863. NULL
  864. }
  865. array(1) {
  866. [0]=>
  867. NULL
  868. }
  869. array(1) {
  870. [0]=>
  871. NULL
  872. }
  873. array(1) {
  874. [0]=>
  875. NULL
  876. }
  877. array(1) {
  878. [0]=>
  879. NULL
  880. }
  881. array(1) {
  882. [0]=>
  883. NULL
  884. }
  885. array(1) {
  886. [0]=>
  887. NULL
  888. }
  889. array(1) {
  890. [0]=>
  891. NULL
  892. }
  893. array(1) {
  894. [0]=>
  895. NULL
  896. }
  897. array(1) {
  898. [0]=>
  899. NULL
  900. }
  901. array(1) {
  902. [0]=>
  903. NULL
  904. }
  905. array(1) {
  906. [0]=>
  907. NULL
  908. }
  909. array(1) {
  910. [0]=>
  911. NULL
  912. }
  913. array(1) {
  914. [0]=>
  915. NULL
  916. }
  917. array(1) {
  918. [0]=>
  919. NULL
  920. }
  921. array(1) {
  922. [0]=>
  923. NULL
  924. }
  925. array(1) {
  926. [0]=>
  927. NULL
  928. }
  929. bool(false)
  930. -- iteration 13 --
  931. array(0) {
  932. }
  933. array(0) {
  934. }
  935. array(0) {
  936. }
  937. array(0) {
  938. }
  939. array(0) {
  940. }
  941. array(0) {
  942. }
  943. array(0) {
  944. }
  945. array(0) {
  946. }
  947. array(0) {
  948. }
  949. array(0) {
  950. }
  951. array(0) {
  952. }
  953. array(0) {
  954. }
  955. array(0) {
  956. }
  957. array(0) {
  958. }
  959. array(0) {
  960. }
  961. array(0) {
  962. }
  963. array(0) {
  964. }
  965. array(0) {
  966. }
  967. bool(false)
  968. *** Done ***