fscanf_variation28.phpt 9.3 KB

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