fscanf_variation26.phpt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. --TEST--
  2. Test fscanf() function: usage variations - char formats with chars
  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 chars using different char format types */
  10. $file_path = dirname(__FILE__);
  11. echo "*** Test fscanf(): different char format types with chars ***\n";
  12. // create a file
  13. $filename = "$file_path/fscanf_variation26.tmp";
  14. $file_handle = fopen($filename, "w");
  15. if($file_handle == false)
  16. exit("Error:failed to open file $filename");
  17. // array of chars
  18. $char_types = array( 'a', "a", 67, -67, 99 );
  19. $char_formats = array( "%c",
  20. "%hc", "%lc", "%Lc",
  21. " %c", "%c ", "% c",
  22. "\t%c", "\n%c", "%4c",
  23. "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
  24. $counter = 1;
  25. // writing to the file
  26. foreach($char_types as $char) {
  27. @fprintf($file_handle, $char);
  28. @fprintf($file_handle, "\n");
  29. }
  30. // closing the file
  31. fclose($file_handle);
  32. // opening the file for reading
  33. $file_handle = fopen($filename, "r");
  34. if($file_handle == false) {
  35. exit("Error:failed to open file $filename");
  36. }
  37. $counter = 1;
  38. // reading the values from file using different char formats
  39. foreach($char_formats as $char_format) {
  40. // rewind the file so that for every foreach iteration the file pointer starts from bof
  41. rewind($file_handle);
  42. echo "\n-- iteration $counter --\n";
  43. while( !feof($file_handle) ) {
  44. var_dump( fscanf($file_handle,$char_format) );
  45. }
  46. $counter++;
  47. }
  48. echo "\n*** Done ***";
  49. ?>
  50. --CLEAN--
  51. <?php
  52. $file_path = dirname(__FILE__);
  53. $filename = "$file_path/fscanf_variation26.tmp";
  54. unlink($filename);
  55. ?>
  56. --EXPECTF--
  57. *** Test fscanf(): different char format types with chars ***
  58. -- iteration 1 --
  59. array(1) {
  60. [0]=>
  61. string(1) "a"
  62. }
  63. array(1) {
  64. [0]=>
  65. string(1) "a"
  66. }
  67. array(1) {
  68. [0]=>
  69. string(1) "6"
  70. }
  71. array(1) {
  72. [0]=>
  73. string(1) "-"
  74. }
  75. array(1) {
  76. [0]=>
  77. string(1) "9"
  78. }
  79. bool(false)
  80. -- iteration 2 --
  81. array(1) {
  82. [0]=>
  83. string(1) "a"
  84. }
  85. array(1) {
  86. [0]=>
  87. string(1) "a"
  88. }
  89. array(1) {
  90. [0]=>
  91. string(1) "6"
  92. }
  93. array(1) {
  94. [0]=>
  95. string(1) "-"
  96. }
  97. array(1) {
  98. [0]=>
  99. string(1) "9"
  100. }
  101. bool(false)
  102. -- iteration 3 --
  103. array(1) {
  104. [0]=>
  105. string(1) "a"
  106. }
  107. array(1) {
  108. [0]=>
  109. string(1) "a"
  110. }
  111. array(1) {
  112. [0]=>
  113. string(1) "6"
  114. }
  115. array(1) {
  116. [0]=>
  117. string(1) "-"
  118. }
  119. array(1) {
  120. [0]=>
  121. string(1) "9"
  122. }
  123. bool(false)
  124. -- iteration 4 --
  125. array(1) {
  126. [0]=>
  127. string(1) "a"
  128. }
  129. array(1) {
  130. [0]=>
  131. string(1) "a"
  132. }
  133. array(1) {
  134. [0]=>
  135. string(1) "6"
  136. }
  137. array(1) {
  138. [0]=>
  139. string(1) "-"
  140. }
  141. array(1) {
  142. [0]=>
  143. string(1) "9"
  144. }
  145. bool(false)
  146. -- iteration 5 --
  147. array(1) {
  148. [0]=>
  149. string(1) "a"
  150. }
  151. array(1) {
  152. [0]=>
  153. string(1) "a"
  154. }
  155. array(1) {
  156. [0]=>
  157. string(1) "6"
  158. }
  159. array(1) {
  160. [0]=>
  161. string(1) "-"
  162. }
  163. array(1) {
  164. [0]=>
  165. string(1) "9"
  166. }
  167. bool(false)
  168. -- iteration 6 --
  169. array(1) {
  170. [0]=>
  171. string(1) "a"
  172. }
  173. array(1) {
  174. [0]=>
  175. string(1) "a"
  176. }
  177. array(1) {
  178. [0]=>
  179. string(1) "6"
  180. }
  181. array(1) {
  182. [0]=>
  183. string(1) "-"
  184. }
  185. array(1) {
  186. [0]=>
  187. string(1) "9"
  188. }
  189. bool(false)
  190. -- iteration 7 --
  191. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  192. NULL
  193. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  194. NULL
  195. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  196. NULL
  197. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  198. NULL
  199. Warning: fscanf(): Bad scan conversion character " " in %s on line %d
  200. NULL
  201. bool(false)
  202. -- iteration 8 --
  203. array(1) {
  204. [0]=>
  205. string(1) "a"
  206. }
  207. array(1) {
  208. [0]=>
  209. string(1) "a"
  210. }
  211. array(1) {
  212. [0]=>
  213. string(1) "6"
  214. }
  215. array(1) {
  216. [0]=>
  217. string(1) "-"
  218. }
  219. array(1) {
  220. [0]=>
  221. string(1) "9"
  222. }
  223. bool(false)
  224. -- iteration 9 --
  225. array(1) {
  226. [0]=>
  227. string(1) "a"
  228. }
  229. array(1) {
  230. [0]=>
  231. string(1) "a"
  232. }
  233. array(1) {
  234. [0]=>
  235. string(1) "6"
  236. }
  237. array(1) {
  238. [0]=>
  239. string(1) "-"
  240. }
  241. array(1) {
  242. [0]=>
  243. string(1) "9"
  244. }
  245. bool(false)
  246. -- iteration 10 --
  247. array(1) {
  248. [0]=>
  249. string(1) "a"
  250. }
  251. array(1) {
  252. [0]=>
  253. string(1) "a"
  254. }
  255. array(1) {
  256. [0]=>
  257. string(2) "67"
  258. }
  259. array(1) {
  260. [0]=>
  261. string(3) "-67"
  262. }
  263. array(1) {
  264. [0]=>
  265. string(2) "99"
  266. }
  267. bool(false)
  268. -- iteration 11 --
  269. array(1) {
  270. [0]=>
  271. string(1) "a"
  272. }
  273. array(1) {
  274. [0]=>
  275. string(1) "a"
  276. }
  277. array(1) {
  278. [0]=>
  279. string(2) "67"
  280. }
  281. array(1) {
  282. [0]=>
  283. string(3) "-67"
  284. }
  285. array(1) {
  286. [0]=>
  287. string(2) "99"
  288. }
  289. bool(false)
  290. -- iteration 12 --
  291. array(1) {
  292. [0]=>
  293. string(1) "a"
  294. }
  295. array(1) {
  296. [0]=>
  297. string(1) "a"
  298. }
  299. array(1) {
  300. [0]=>
  301. string(2) "67"
  302. }
  303. array(1) {
  304. [0]=>
  305. NULL
  306. }
  307. array(1) {
  308. [0]=>
  309. string(2) "99"
  310. }
  311. bool(false)
  312. -- iteration 13 --
  313. array(0) {
  314. }
  315. array(0) {
  316. }
  317. array(0) {
  318. }
  319. array(0) {
  320. }
  321. array(0) {
  322. }
  323. bool(false)
  324. *** Done ***