1--TEST-- 2Test fscanf() function: usage variations - char formats with resource 3--FILE-- 4<?php 5 6/* 7 Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] ); 8 Description: Parses input from a file according to a format 9*/ 10 11/* Test fscanf() to scan resource type using different char format types */ 12 13$file_path = dirname(__FILE__); 14 15echo "*** Test fscanf(): different char format types with resource ***\n"; 16 17// create a file 18$filename = "$file_path/fscanf_variation22.tmp"; 19$file_handle = fopen($filename, "w"); 20if($file_handle == false) 21 exit("Error:failed to open file $filename"); 22 23 24// resource type variable 25$fp = fopen (__FILE__, "r"); 26$dfp = opendir ( dirname(__FILE__) ); 27 28// array of resource types 29$resource_types = array ( 30 $fp, 31 $dfp 32); 33 34$char_formats = array( "%c", 35 "%hc", "%lc", "%Lc", 36 " %c", "%c ", "% c", 37 "\t%c", "\n%c", "%4c", 38 "%30c", "%[a-zA-Z@#$&0-9]", "%*c"); 39 40$counter = 1; 41 42// writing to the file 43foreach($resource_types as $value) { 44 @fprintf($file_handle, $value); 45 @fprintf($file_handle, "\n"); 46} 47// closing the file 48fclose($file_handle); 49 50// opening the file for reading 51$file_handle = fopen($filename, "r"); 52if($file_handle == false) { 53 exit("Error:failed to open file $filename"); 54} 55 56$counter = 1; 57// reading the values from file using different char formats 58foreach($char_formats as $char_format) { 59 // rewind the file so that for every foreach iteration the file pointer starts from bof 60 rewind($file_handle); 61 echo "\n-- iteration $counter --\n"; 62 while( !feof($file_handle) ) { 63 var_dump( fscanf($file_handle,$char_format) ); 64 } 65 $counter++; 66} 67 68// closing the resources 69fclose($fp); 70closedir($dfp); 71 72echo "\n*** Done ***"; 73?> 74--CLEAN-- 75<?php 76$file_path = dirname(__FILE__); 77$filename = "$file_path/fscanf_variation22.tmp"; 78unlink($filename); 79?> 80--EXPECTF-- 81*** Test fscanf(): different char format types with resource *** 82 83-- iteration 1 -- 84array(1) { 85 [0]=> 86 string(1) "R" 87} 88array(1) { 89 [0]=> 90 string(1) "R" 91} 92bool(false) 93 94-- iteration 2 -- 95array(1) { 96 [0]=> 97 string(1) "R" 98} 99array(1) { 100 [0]=> 101 string(1) "R" 102} 103bool(false) 104 105-- iteration 3 -- 106array(1) { 107 [0]=> 108 string(1) "R" 109} 110array(1) { 111 [0]=> 112 string(1) "R" 113} 114bool(false) 115 116-- iteration 4 -- 117array(1) { 118 [0]=> 119 string(1) "R" 120} 121array(1) { 122 [0]=> 123 string(1) "R" 124} 125bool(false) 126 127-- iteration 5 -- 128array(1) { 129 [0]=> 130 string(1) "R" 131} 132array(1) { 133 [0]=> 134 string(1) "R" 135} 136bool(false) 137 138-- iteration 6 -- 139array(1) { 140 [0]=> 141 string(1) "R" 142} 143array(1) { 144 [0]=> 145 string(1) "R" 146} 147bool(false) 148 149-- iteration 7 -- 150 151Warning: fscanf(): Bad scan conversion character " " in %s on line %d 152NULL 153 154Warning: fscanf(): Bad scan conversion character " " in %s on line %d 155NULL 156bool(false) 157 158-- iteration 8 -- 159array(1) { 160 [0]=> 161 string(1) "R" 162} 163array(1) { 164 [0]=> 165 string(1) "R" 166} 167bool(false) 168 169-- iteration 9 -- 170array(1) { 171 [0]=> 172 string(1) "R" 173} 174array(1) { 175 [0]=> 176 string(1) "R" 177} 178bool(false) 179 180-- iteration 10 -- 181array(1) { 182 [0]=> 183 string(4) "Reso" 184} 185array(1) { 186 [0]=> 187 string(4) "Reso" 188} 189bool(false) 190 191-- iteration 11 -- 192array(1) { 193 [0]=> 194 string(8) "Resource" 195} 196array(1) { 197 [0]=> 198 string(8) "Resource" 199} 200bool(false) 201 202-- iteration 12 -- 203array(1) { 204 [0]=> 205 string(8) "Resource" 206} 207array(1) { 208 [0]=> 209 string(8) "Resource" 210} 211bool(false) 212 213-- iteration 13 -- 214array(0) { 215} 216array(0) { 217} 218bool(false) 219 220*** Done *** 221