fscanf_variation33.phpt 11 KB

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