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