fscanf_variation26.phpt 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. --TEST--
  2. Test fscanf() function: usage variations - char formats with chars
  3. --FILE--
  4. <?php
  5. /* Test fscanf() to scan different chars using different char format types */
  6. $file_path = __DIR__;
  7. echo "*** Test fscanf(): different char format types with chars ***\n";
  8. // create a file
  9. $filename = "$file_path/fscanf_variation26.tmp";
  10. $file_handle = fopen($filename, "w");
  11. if($file_handle == false)
  12. exit("Error:failed to open file $filename");
  13. // array of chars
  14. $char_types = array( 'a', "a", 67, -67, 99 );
  15. $char_formats = array( "%c",
  16. "%hc", "%lc", "%Lc",
  17. " %c", "%c ", "% c",
  18. "\t%c", "\n%c", "%4c",
  19. "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
  20. $counter = 1;
  21. // writing to the file
  22. foreach($char_types as $char) {
  23. @fprintf($file_handle, $char);
  24. @fprintf($file_handle, "\n");
  25. }
  26. // closing the file
  27. fclose($file_handle);
  28. // opening the file for reading
  29. $file_handle = fopen($filename, "r");
  30. if($file_handle == false) {
  31. exit("Error:failed to open file $filename");
  32. }
  33. $counter = 1;
  34. // reading the values from file using different char formats
  35. foreach($char_formats as $char_format) {
  36. // rewind the file so that for every foreach iteration the file pointer starts from bof
  37. rewind($file_handle);
  38. echo "\n-- iteration $counter --\n";
  39. while( !feof($file_handle) ) {
  40. try {
  41. var_dump(fscanf($file_handle,$char_format));
  42. } catch (ValueError $exception) {
  43. echo $exception->getMessage() . "\n";
  44. }
  45. }
  46. $counter++;
  47. }
  48. echo "\n*** Done ***";
  49. ?>
  50. --CLEAN--
  51. <?php
  52. $file_path = __DIR__;
  53. $filename = "$file_path/fscanf_variation26.tmp";
  54. unlink($filename);
  55. ?>
  56. --EXPECT--
  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. Bad scan conversion character " "
  192. Bad scan conversion character " "
  193. Bad scan conversion character " "
  194. Bad scan conversion character " "
  195. Bad scan conversion character " "
  196. bool(false)
  197. -- iteration 8 --
  198. array(1) {
  199. [0]=>
  200. string(1) "a"
  201. }
  202. array(1) {
  203. [0]=>
  204. string(1) "a"
  205. }
  206. array(1) {
  207. [0]=>
  208. string(1) "6"
  209. }
  210. array(1) {
  211. [0]=>
  212. string(1) "-"
  213. }
  214. array(1) {
  215. [0]=>
  216. string(1) "9"
  217. }
  218. bool(false)
  219. -- iteration 9 --
  220. array(1) {
  221. [0]=>
  222. string(1) "a"
  223. }
  224. array(1) {
  225. [0]=>
  226. string(1) "a"
  227. }
  228. array(1) {
  229. [0]=>
  230. string(1) "6"
  231. }
  232. array(1) {
  233. [0]=>
  234. string(1) "-"
  235. }
  236. array(1) {
  237. [0]=>
  238. string(1) "9"
  239. }
  240. bool(false)
  241. -- iteration 10 --
  242. array(1) {
  243. [0]=>
  244. string(1) "a"
  245. }
  246. array(1) {
  247. [0]=>
  248. string(1) "a"
  249. }
  250. array(1) {
  251. [0]=>
  252. string(2) "67"
  253. }
  254. array(1) {
  255. [0]=>
  256. string(3) "-67"
  257. }
  258. array(1) {
  259. [0]=>
  260. string(2) "99"
  261. }
  262. bool(false)
  263. -- iteration 11 --
  264. array(1) {
  265. [0]=>
  266. string(1) "a"
  267. }
  268. array(1) {
  269. [0]=>
  270. string(1) "a"
  271. }
  272. array(1) {
  273. [0]=>
  274. string(2) "67"
  275. }
  276. array(1) {
  277. [0]=>
  278. string(3) "-67"
  279. }
  280. array(1) {
  281. [0]=>
  282. string(2) "99"
  283. }
  284. bool(false)
  285. -- iteration 12 --
  286. array(1) {
  287. [0]=>
  288. string(1) "a"
  289. }
  290. array(1) {
  291. [0]=>
  292. string(1) "a"
  293. }
  294. array(1) {
  295. [0]=>
  296. string(2) "67"
  297. }
  298. array(1) {
  299. [0]=>
  300. NULL
  301. }
  302. array(1) {
  303. [0]=>
  304. string(2) "99"
  305. }
  306. bool(false)
  307. -- iteration 13 --
  308. array(0) {
  309. }
  310. array(0) {
  311. }
  312. array(0) {
  313. }
  314. array(0) {
  315. }
  316. array(0) {
  317. }
  318. bool(false)
  319. *** Done ***