fscanf_variation25.phpt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. --TEST--
  2. Test fscanf() function: usage variations - char formats with boolean
  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 boolean data using different char format types */
  10. $file_path = dirname(__FILE__);
  11. echo "*** Test fscanf(): different char format types with boolean data ***\n";
  12. // create a file
  13. $filename = "$file_path/fscanf_variation25.tmp";
  14. $file_handle = fopen($filename, "w");
  15. if($file_handle == false)
  16. exit("Error:failed to open file $filename");
  17. // array of boolean types
  18. $bool_types = array (
  19. true,
  20. false,
  21. TRUE,
  22. FALSE,
  23. );
  24. $char_formats = array( "%c",
  25. "%hc", "%lc", "%Lc",
  26. " %c", "%c ", "% c",
  27. "\t%c", "\n%c", "%4c",
  28. "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
  29. $counter = 1;
  30. // writing to the file
  31. foreach($bool_types as $value) {
  32. @fprintf($file_handle, $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 char formats
  44. foreach($char_formats as $char_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. var_dump( fscanf($file_handle,$char_format) );
  50. }
  51. $counter++;
  52. }
  53. echo "\n*** Done ***";
  54. ?>
  55. --CLEAN--
  56. <?php
  57. $file_path = dirname(__FILE__);
  58. $filename = "$file_path/fscanf_variation25.tmp";
  59. unlink($filename);
  60. ?>
  61. --EXPECTF--
  62. *** Test fscanf(): different char format types with boolean data ***
  63. -- iteration 1 --
  64. array(1) {
  65. [0]=>
  66. string(1) "1"
  67. }
  68. array(1) {
  69. [0]=>
  70. string(0) ""
  71. }
  72. array(1) {
  73. [0]=>
  74. string(1) "1"
  75. }
  76. array(1) {
  77. [0]=>
  78. string(0) ""
  79. }
  80. bool(false)
  81. -- iteration 2 --
  82. array(1) {
  83. [0]=>
  84. string(1) "1"
  85. }
  86. array(1) {
  87. [0]=>
  88. string(0) ""
  89. }
  90. array(1) {
  91. [0]=>
  92. string(1) "1"
  93. }
  94. array(1) {
  95. [0]=>
  96. string(0) ""
  97. }
  98. bool(false)
  99. -- iteration 3 --
  100. array(1) {
  101. [0]=>
  102. string(1) "1"
  103. }
  104. array(1) {
  105. [0]=>
  106. string(0) ""
  107. }
  108. array(1) {
  109. [0]=>
  110. string(1) "1"
  111. }
  112. array(1) {
  113. [0]=>
  114. string(0) ""
  115. }
  116. bool(false)
  117. -- iteration 4 --
  118. array(1) {
  119. [0]=>
  120. string(1) "1"
  121. }
  122. array(1) {
  123. [0]=>
  124. string(0) ""
  125. }
  126. array(1) {
  127. [0]=>
  128. string(1) "1"
  129. }
  130. array(1) {
  131. [0]=>
  132. string(0) ""
  133. }
  134. bool(false)
  135. -- iteration 5 --
  136. array(1) {
  137. [0]=>
  138. string(1) "1"
  139. }
  140. NULL
  141. array(1) {
  142. [0]=>
  143. string(1) "1"
  144. }
  145. NULL
  146. bool(false)
  147. -- iteration 6 --
  148. array(1) {
  149. [0]=>
  150. string(1) "1"
  151. }
  152. array(1) {
  153. [0]=>
  154. string(0) ""
  155. }
  156. array(1) {
  157. [0]=>
  158. string(1) "1"
  159. }
  160. array(1) {
  161. [0]=>
  162. string(0) ""
  163. }
  164. bool(false)
  165. -- iteration 7 --
  166. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  167. NULL
  168. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  169. NULL
  170. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  171. NULL
  172. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  173. NULL
  174. bool(false)
  175. -- iteration 8 --
  176. array(1) {
  177. [0]=>
  178. string(1) "1"
  179. }
  180. NULL
  181. array(1) {
  182. [0]=>
  183. string(1) "1"
  184. }
  185. NULL
  186. bool(false)
  187. -- iteration 9 --
  188. array(1) {
  189. [0]=>
  190. string(1) "1"
  191. }
  192. NULL
  193. array(1) {
  194. [0]=>
  195. string(1) "1"
  196. }
  197. NULL
  198. bool(false)
  199. -- iteration 10 --
  200. array(1) {
  201. [0]=>
  202. string(1) "1"
  203. }
  204. array(1) {
  205. [0]=>
  206. string(0) ""
  207. }
  208. array(1) {
  209. [0]=>
  210. string(1) "1"
  211. }
  212. array(1) {
  213. [0]=>
  214. string(0) ""
  215. }
  216. bool(false)
  217. -- iteration 11 --
  218. array(1) {
  219. [0]=>
  220. string(1) "1"
  221. }
  222. array(1) {
  223. [0]=>
  224. string(0) ""
  225. }
  226. array(1) {
  227. [0]=>
  228. string(1) "1"
  229. }
  230. array(1) {
  231. [0]=>
  232. string(0) ""
  233. }
  234. bool(false)
  235. -- iteration 12 --
  236. array(1) {
  237. [0]=>
  238. string(1) "1"
  239. }
  240. array(1) {
  241. [0]=>
  242. NULL
  243. }
  244. array(1) {
  245. [0]=>
  246. string(1) "1"
  247. }
  248. array(1) {
  249. [0]=>
  250. NULL
  251. }
  252. bool(false)
  253. -- iteration 13 --
  254. array(0) {
  255. }
  256. array(0) {
  257. }
  258. array(0) {
  259. }
  260. array(0) {
  261. }
  262. bool(false)
  263. *** Done ***