--- /dev/null
+--TEST--
+Test fscanf() function: error conditions
+
+--FILE--
+<?php
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+echo "*** Testing fscanf() for error conditions ***\n";
+$file_path = dirname(__FILE__);
+
+$filename = "$file_path/fscanf_error.tmp";
+$file_handle = fopen($filename, 'w');
+if ($file_handle == false)
+ exit("Error:failed to open file $filename");
+fwrite($file_handle, "hello world");
+fclose($file_handle);
+
+// zero argument
+var_dump( fscanf() );
+
+// single argument
+$file_handle = fopen($filename, 'r');
+if ($file_handle == false)
+ exit("Error:failed to open file $filename");
+var_dump( fscanf($file_handle) );
+fclose($file_handle);
+
+// invalid file handle
+var_dump( fscanf($file_handle, "%s") );
+
+// number of formats in format strings not matching the no of variables
+$file_handle = fopen($filename, 'r');
+if ($file_handle == false)
+ exit("Error:failed to open file $filename");
+var_dump( fscanf($file_handle, "%d%s%f", $int_var, $string_var) );
+fclose($file_handle);
+
+// different invalid format strings
+$invalid_formats = array( $undefined_var, undefined_constant,
+ "%", "%h", "%.", "%d%m"
+ );
+
+
+// looping to use various invalid formats with fscanf()
+foreach($invalid_formats as $format) {
+ $file_handle = fopen($filename, 'r');
+ if ($file_handle == false)
+ exit("Error:failed to open file $filename");
+ var_dump( fscanf($file_handle, $format) );
+ fclose($file_handle);
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_error.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Testing fscanf() for error conditions ***
+
+Warning: Wrong parameter count for fscanf() in %s on line %d
+NULL
+
+Warning: Wrong parameter count for fscanf() in %s on line %d
+NULL
+
+Warning: fscanf(): %d is not a valid File-Handle resource in %s on line %d
+bool(false)
+
+Warning: fscanf(): Different numbers of variable names and field specifiers in %s on line %d
+int(-1)
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Use of undefined constant undefined_constant - assumed 'undefined_constant' in %s on line %d
+array(0) {
+}
+array(0) {
+}
+
+Warning: fscanf(): Bad scan conversion character " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character "." in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character "m" in %s on line %d
+NULL
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - return type without third argument
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* test fscanf() for its return type */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Testing fscanf(): for its return type without third argument ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation1.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+fwrite($file_handle, "hello_world ");
+fwrite($file_handle, 12345);
+fclose($file_handle);
+
+// open file for reading
+$file_handle = fopen($filename, "r");
+// capturing the return value from fscanf() called without third argument
+$return_value = fscanf($file_handle, "%s");
+var_dump( is_array($return_value), $return_value); // return type is an array
+fclose($file_handle);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation1.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Testing fscanf(): for its return type without third argument ***
+bool(true)
+array(1) {
+ [0]=>
+ string(11) "hello_world"
+}
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different float format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation10.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$float_formats = array( "%f",
+ "%hf", "%lf", "%Lf",
+ " %f", "%f ", "% f",
+ "\t%f", "\n%f", "%4f",
+ "%30f", "%[0-9]", "%*f"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different formats formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation10.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different float format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation11.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$float_formats = array( "%f",
+ "%hf", "%lf", "%Lf",
+ " %f", "%f ", "% f",
+ "\t%f", "\n%f", "%4f",
+ "%30f", "%[0-9]", "%*f"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different float formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation11.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with arrays ***
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different float format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation12.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$float_formats = array( "%f", "%hf", "%lf", "%Lf", " %f", "%f ", "% f", "\t%f", "\n%f", "%4f", "%30f", "%[0-9]", "%*f");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ fprintf($file_handle, $string);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different float formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation12.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different float format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation13.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$float_formats = array( "%f", "%hf", "%lf", "%Lf", " %f", "%f ", "% f", "\t%f", "\n%f", "%4f", "%30f", "%[0-9]", "%*f");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different float formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation13.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different strings using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with different string ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation14.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid strings
+
+/* string created using Heredoc (<<<) */
+$heredoc_string = <<<EOT
+This is string defined
+using heredoc.
+EOT;
+/* heredoc string with only numerics */
+$heredoc_numeric_string = <<<EOT
+123456 3993
+4849 string
+EOT;
+/* null heardoc string */
+$heredoc_empty_string = <<<EOT
+EOT;
+$heredoc_null_string = <<<EOT
+NULL
+EOT;
+
+$valid_strings = array(
+ "",
+ " ",
+ '',
+ ' ',
+ "string",
+ 'string',
+ "NULL",
+ 'null',
+ "FALSE",
+ 'true',
+ "\x0b",
+ "\0",
+ '\0',
+ '\060',
+ "\070",
+ "0x55F",
+ "055",
+ "@#$#$%%$^^$%^%^$^&",
+ $heredoc_string,
+ $heredoc_numeric_string,
+ $heredoc_empty_string,
+ $heredoc_null_string
+);
+
+// various string formats
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation14.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with different string ***
+
+-- iteration 1 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(4) "stri"
+}
+array(1) {
+ [0]=>
+ string(4) "stri"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(4) "FALS"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(4) "0x55"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(4) "usin"
+}
+array(1) {
+ [0]=>
+ string(4) "1234"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(2) "\0"
+}
+array(1) {
+ [0]=>
+ string(4) "\060"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+NULL
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+NULL
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(5) "0x55F"
+}
+array(1) {
+ [0]=>
+ string(3) "055"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(4) "This"
+}
+array(1) {
+ [0]=>
+ string(5) "using"
+}
+array(1) {
+ [0]=>
+ string(6) "123456"
+}
+array(1) {
+ [0]=>
+ string(4) "4849"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+NULL
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation15.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation15.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "3435"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(4) "1000"
+}
+array(1) {
+ [0]=>
+ string(4) "-100"
+}
+array(1) {
+ [0]=>
+ string(4) "1000"
+}
+array(1) {
+ [0]=>
+ string(4) "-100"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(4) "1050"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation16.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation16.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "Reso"
+}
+array(1) {
+ [0]=>
+ string(4) "Reso"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation17.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation17.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan integer values using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation18.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of string type values
+
+$integer_values = array (
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($integer_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation18.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - string formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different string format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different string format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation19.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$string_formats = array( "%s",
+ "%hs", "%ls", "%Ls",
+ " %s", "%s ", "% s",
+ "\t%s", "\n%s", "%4s",
+ "%30s", "%[a-zA-Z0-9]", "%*s");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different string formats
+foreach($string_formats as $string_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$string_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation19.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different string format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different interger format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation2.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer vlaues
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various integer formats
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ fprintf($file_handle, $int_value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation2.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation20.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer vlaues
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various char formats
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-bA-B@#$&]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ @fprintf($file_handle, $int_value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation20.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(2) "-1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation21.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation21.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ string(1) "2"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(4) "3435"
+}
+array(1) {
+ [0]=>
+ string(4) "2147"
+}
+array(1) {
+ [0]=>
+ string(4) "-214"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(4) "1000"
+}
+array(1) {
+ [0]=>
+ string(4) "-100"
+}
+array(1) {
+ [0]=>
+ string(4) "1000"
+}
+array(1) {
+ [0]=>
+ string(4) "-100"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(4) "1050"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ string(11) "-2147483649"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(4) "-0.1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ string(8) "-1000000"
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ string(11) "-1000000000"
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation22.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation22.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+array(1) {
+ [0]=>
+ string(1) "R"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "Reso"
+}
+array(1) {
+ [0]=>
+ string(4) "Reso"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+array(1) {
+ [0]=>
+ string(8) "Resource"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation23.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation23.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+array(1) {
+ [0]=>
+ string(1) "A"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+array(1) {
+ [0]=>
+ string(4) "Arra"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+array(1) {
+ [0]=>
+ string(5) "Array"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation24.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation24.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with strings ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(1) "\"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "s"
+}
+array(1) {
+ [0]=>
+ string(1) "t"
+}
+array(1) {
+ [0]=>
+ string(1) "F"
+}
+array(1) {
+ [0]=>
+ string(1) "f"
+}
+array(1) {
+ [0]=>
+ string(1) "T"
+}
+array(1) {
+ [0]=>
+ string(1) "N"
+}
+array(1) {
+ [0]=>
+ string(1) "n"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(4) "\x01"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(3) "\01"
+}
+array(1) {
+ [0]=>
+ string(4) "stri"
+}
+array(1) {
+ [0]=>
+ string(4) "stri"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+array(1) {
+ [0]=>
+ string(4) "FALS"
+}
+array(1) {
+ [0]=>
+ string(4) "fals"
+}
+array(1) {
+ [0]=>
+ string(4) "TRUE"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(4) "\x01"
+}
+array(1) {
+ [0]=>
+ string(1) "\ 1"
+}
+array(1) {
+ [0]=>
+ string(3) "\01"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(5) "false"
+}
+array(1) {
+ [0]=>
+ string(4) "TRUE"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(6) "string"
+}
+array(1) {
+ [0]=>
+ string(4) "true"
+}
+array(1) {
+ [0]=>
+ string(5) "FALSE"
+}
+array(1) {
+ [0]=>
+ string(5) "false"
+}
+array(1) {
+ [0]=>
+ string(4) "TRUE"
+}
+array(1) {
+ [0]=>
+ string(4) "NULL"
+}
+array(1) {
+ [0]=>
+ string(4) "null"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation25.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation25.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(0) ""
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - char formats with chars
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different chars using different char format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different char format types with chars ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation26.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of chars
+$char_types = array( 'a', "a", 67, -67, 99 );
+
+$char_formats = array( "%c",
+ "%hc", "%lc", "%Lc",
+ " %c", "%c ", "% c",
+ "\t%c", "\n%c", "%4c",
+ "%30c", "%[a-zA-Z@#$&0-9]", "%*c");
+
+$counter = 1;
+
+// writing to the file
+foreach($char_types as $char) {
+ @fprintf($file_handle, $char);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different char formats
+foreach($char_formats as $char_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$char_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation26.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different char format types with chars ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+array(1) {
+ [0]=>
+ string(1) "9"
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(2) "67"
+}
+array(1) {
+ [0]=>
+ string(3) "-67"
+}
+array(1) {
+ [0]=>
+ string(2) "99"
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(2) "67"
+}
+array(1) {
+ [0]=>
+ string(3) "-67"
+}
+array(1) {
+ [0]=>
+ string(2) "99"
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+array(1) {
+ [0]=>
+ string(2) "67"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "99"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation27.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer vlaues
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various octal formats
+$octal_formats = array( "%o",
+ "%ho", "%lo", "%Lo",
+ " %o", "%o ", "% o",
+ "\t%o", "\n%o", "%4o",
+ "%30o", "%[0-7]", "%*o"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ @fprintf($file_handle, $int_value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation27.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(2487)
+}
+array(1) {
+ [0]=>
+ int(319)
+}
+array(1) {
+ [0]=>
+ int(32)
+}
+array(1) {
+ [0]=>
+ int(168)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(3) "477"
+}
+array(1) {
+ [0]=>
+ string(2) "40"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation28.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$octal_formats = array( "%o",
+ "%ho", "%lo", "%Lo",
+ " %o", "%o ", "% o",
+ "\t%o", "\n%o", "%4o",
+ "%30o", "%[0-7]", "%*o"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation28.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(1127)
+}
+array(1) {
+ [0]=>
+ int(-140)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(512)
+}
+array(1) {
+ [0]=>
+ int(-64)
+}
+array(1) {
+ [0]=>
+ int(512)
+}
+array(1) {
+ [0]=>
+ int(-64)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(552)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(1821)
+}
+array(1) {
+ [0]=>
+ int(9020)
+}
+array(1) {
+ [0]=>
+ int(-9020)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(32768)
+}
+array(1) {
+ [0]=>
+ int(-262144)
+}
+array(1) {
+ [0]=>
+ int(16777216)
+}
+array(1) {
+ [0]=>
+ int(-134217728)
+}
+array(1) {
+ [0]=>
+ int(8)
+}
+array(1) {
+ [0]=>
+ int(282624)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(4) "3435"
+}
+array(1) {
+ [0]=>
+ string(5) "21474"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation29.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$octal_formats = array( "%o",
+ "%ho", "%lo", "%Lo",
+ " %o", "%o ", "% o",
+ "\t%o", "\n%o", "%4o",
+ "%30o", "%[0-9]", "%*o"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation29.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different integer format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation3.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation3.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(3435)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(-214)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1000)
+}
+array(1) {
+ [0]=>
+ int(-100)
+}
+array(1) {
+ [0]=>
+ int(1000)
+}
+array(1) {
+ [0]=>
+ int(-100)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ int(-1000000)
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ int(-1000000000)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation30.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$octal_formats = array ( "%o",
+ "%ho", "%lo", "%Lo",
+ " %o", "%o ", "% o",
+ "\t%o", "\n%o", "%4o",
+ "%30o", "%[0-7]", "%*o"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation30.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation31.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$octal_formats = array( "%o", "%ho", "%lo", "%Lo", " %o", "%o ", "% o", "\t%o", "\n%o", "%4o", "%30o", "%[0-9]", "%*o");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation31.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - octal formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different octal format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different octal format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation32.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$octal_formats = array( "%o",
+ "%ho", "%lo", "%Lo",
+ " %o", "%o ", "% o",
+ "\t%o", "\n%o", "%4o",
+ "%30o", "%[0-7]", "%*o"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different octal formats
+foreach($octal_formats as $octal_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$octal_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation32.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different octal format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation33.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer vlaues
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various hexa formats
+$hexa_formats = array( "%x",
+ "%xx", "%lx", "%Lx",
+ " %x", "%x ", "% x",
+ "\t%x", "\n%x", "%4x",
+ "%30x", "%[0-9A-Fa-f]", "%*x"
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ @fprintf($file_handle, $int_value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation33.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(18023)
+}
+array(1) {
+ [0]=>
+ int(18297)
+}
+array(1) {
+ [0]=>
+ int(16533)
+}
+array(1) {
+ [0]=>
+ int(592)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(131)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation34.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$hexa_formats = array( "%x",
+ "%hx", "%lx", "%Lx",
+ " %x", "%x ", "% x",
+ "\t%x", "\n%x", "%4x",
+ "%30x", "%[0-9A-Za-z]", "%*x");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation34.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(13365)
+}
+array(1) {
+ [0]=>
+ int(8519)
+}
+array(1) {
+ [0]=>
+ int(-532)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(4096)
+}
+array(1) {
+ [0]=>
+ int(-256)
+}
+array(1) {
+ [0]=>
+ int(4096)
+}
+array(1) {
+ [0]=>
+ int(-256)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(4176)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1048576)
+}
+array(1) {
+ [0]=>
+ int(-16777216)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(-2147483648)
+}
+array(1) {
+ [0]=>
+ int(16)
+}
+array(1) {
+ [0]=>
+ int(17104896)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation35.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$hexa_formats = array( "%x", "%hx", "%lx", "%Lx", " %x", "%x ", "% x", "\t%x", "\n%x", "%4x", "%30x", "%[0-9]", "%*x");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation35.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation36.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$hexa_formats = array( "%x", "%hx", "%lx", "%Lx", " %x", "%x ", "% x", "\t%x", "\n%x", "%4x", "%30x", "%[0-9]", "%*x");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation36.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation37.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$hexa_formats = array( "%x", "%hx", "%lx", "%Lx", " %x", "%x ", "% x", "\t%x", "\n%x", "%4x", "%30x", "%[0-9]", "%*x");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation37.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - hexa formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different hexa format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different hexa format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation38.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$hexa_formats = array( "%x", "%hx", "%lx", "%Lx", " %x", "%x ", "% x", "\t%x", "\n%x", "%4x", "%30x", "%[0-9]", "%*x");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different hexa formats
+foreach($hexa_formats as $hexa_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$hexa_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation38.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different hexa format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned int formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different unsigned int format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned int format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation39.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer values
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various unsigned int formats
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ @fprintf($file_handle, $int_value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned int formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation39.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned int format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483640)
+}
+array(1) {
+ [0]=>
+ int(4667)
+}
+array(1) {
+ [0]=>
+ int(4779)
+}
+array(1) {
+ [0]=>
+ int(4095)
+}
+array(1) {
+ [0]=>
+ int(250)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(83)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different integer format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation4.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// non-integer type of data
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation4.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different unsigned format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation40.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation40.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(3435)
+}
+array(1) {
+ [0]=>
+ int(2147)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967082"
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1000)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967196"
+}
+array(1) {
+ [0]=>
+ int(1000)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967196"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ string(10) "4294967295"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ int(2147483647)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(100000)
+}
+array(1) {
+ [0]=>
+ string(10) "4293967296"
+}
+array(1) {
+ [0]=>
+ int(100000000)
+}
+array(1) {
+ [0]=>
+ string(10) "3294967296"
+}
+array(1) {
+ [0]=>
+ int(10)
+}
+array(1) {
+ [0]=>
+ int(1050000)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different unsigned format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation41.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation41.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different unsigned format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation42.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation42.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different unsigned format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation43.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation43.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - unsigned formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different unsigned format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different unsigned format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation44.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$unsigned_formats = array( "%u", "%hu", "%lu", "%Lu", " %u", "%u ", "% u", "\t%u", "\n%u", "%4u", "%30u", "%[0-9]", "%*u");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different unsigned formats
+foreach($unsigned_formats as $unsigned_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$unsigned_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation44.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different unsigned format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different integer values using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with different integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation45.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid integer vlaues
+$valid_ints = array(
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+// various scientific formats
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-1]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_ints as $int_value) {
+ @fprintf($file_handle, $int_value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation45.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with different integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan float values using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation46.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$float_values = array (
+ -2147483649,
+ 2147483648,
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 1.0,
+ 1e5,
+ -1e6,
+ 1E8,
+ -1E9,
+ 10.0000000000000000005,
+ 10.5e+5
+);
+
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-9]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($float_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation46.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(3435)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-1000000)
+}
+array(1) {
+ [0]=>
+ float(100000000)
+}
+array(1) {
+ [0]=>
+ float(-1000000000)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(9) "100000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with resource
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan resource type using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with resource ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation47.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// array of resource types
+$resource_types = array (
+ $fp,
+ $dfp
+);
+
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-9]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($resource_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+// closing the resources
+fclose($fp);
+fclose($dfp);
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation47.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with resource ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation48.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-9]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation48.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with arrays ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation49.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-9]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ @fprintf($file_handle, $string);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation49.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with arrays
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan arrays using different integer format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with arrays ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation5.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array types
+$array_types = array (
+ array(),
+ array(0),
+ array(1),
+ array(NULL),
+ array(null),
+ array("string"),
+ array(true),
+ array(TRUE),
+ array(false),
+ array(FALSE),
+ array(1,2,3,4),
+ array(1 => "One", "two" => 2)
+);
+
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($array_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation5.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with arrays ***
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+Notice: Array to string conversion in %s on line %d
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - scientific formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different scientific format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different scientific format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation50.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$scientific_formats = array( "%e", "%he", "%le", "%Le", " %e", "%e ", "% e", "\t%e", "\n%e", "%4e", "%30e", "%[0-9]", "%*e");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different scientific formats
+foreach($scientific_formats as $scientific_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$scientific_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation50.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different scientific format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+array(1) {
+ [0]=>
+ float(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - file opened in write only mode
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan a file for read when file is opened inwrite only mode */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): to read from a file opened in write only mode ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation51.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+//writing data to the file
+fwrite($file_handle,"sample text\n");
+
+//closing the file
+fclose($file_handle);
+
+// various formats
+$formats = array( "%d", "%f", "%e", "%u", " %s", "%x", "%o");
+
+$counter = 1;
+
+// various write only modes
+$modes = array("w", "wb", "wt",
+ "a", "ab", "at",
+ "x", "xb", "xt"
+ );
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($modes as $mode) {
+
+ $file_handle = fopen($filename, $mode);
+ if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+ }
+ echo "\n-- iteration $counter --\n";
+
+ foreach($formats as $format) {
+ var_dump( fscanf($file_handle,$format) );
+ rewind($file_handle);
+ }
+ $counter++;
+ fclose($file_handle);
+ unlink($filename);
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation51.tmp";
+unlink($filename);
+?>
+--EXPECT--
+*** Test fscanf(): to read from a file opened in write only mode ***
+
+-- iteration 1 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 2 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 3 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 4 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 5 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 6 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 7 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 8 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 9 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - empty file
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan an empty file */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): to read an empty file ***\n";
+
+// various formats
+$formats = array( "%d", "%f", "%e", "%u", " %s", "%x", "%o");
+
+$counter = 1;
+
+// various read modes
+$modes = array("r", "rb", "rt", "r+", "r+b", "r+t",
+ "w+", "w+b", "w+t",
+ "a+", "a+b", "a+t"
+ );
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($modes as $mode) {
+
+ // create an empty file
+ $filename = "$file_path/fscanf_variation52.tmp";
+ $file_handle = fopen($filename, "w");
+ if($file_handle == false)
+ exit("Error:failed to open file $filename");
+ //closing the file
+ fclose($file_handle);
+
+ // opening file in $mode mode
+ $file_handle = fopen($filename, $mode);
+ if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+ }
+ echo "\n-- iteration $counter --\n";
+
+ foreach($formats as $format) {
+ var_dump( fscanf($file_handle,$format) );
+ rewind($file_handle);
+ }
+ $counter++;
+ fclose($file_handle);
+ unlink($filename);
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation52.tmp";
+unlink($filename);
+?>
+--EXPECT--
+*** Test fscanf(): to read an empty file ***
+
+-- iteration 1 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 2 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 3 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 4 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 5 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 6 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 7 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 8 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 9 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 10 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 11 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 12 --
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - file pointer pointing to EOF
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to read a file when file pointer is pointing to EOF */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): to read a file when file pointer is pointing to EOF ***\n";
+
+// various formats
+$formats = array( "%d", "%f", "%e", "%u", " %s", "%x", "%o");
+
+$counter = 1;
+
+// various read modes
+$modes = array("r", "rb", "rt", "r+", "r+b", "r+t",
+ "w+", "w+b", "w+t",
+ "a+", "a+b", "a+t"
+ );
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($modes as $mode) {
+
+ // create an empty file
+ $filename = "$file_path/fscanf_variation52.tmp";
+ $file_handle = fopen($filename, "w");
+ if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+ //writing data to the file
+ @fwrite($file_handle, "Sample text\n");
+
+ // writing a blank line
+ @fwrite($file_handle, "\n");
+
+ //closing the file
+ fclose($file_handle);
+
+ // opening file in $mode mode
+ $file_handle = fopen($filename, $mode);
+ if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+ }
+ echo "\n-- iteration $counter --\n";
+
+ // current location
+ var_dump( ftell($file_handle) );
+
+ // set the file pointer to eof
+ var_dump( fseek($file_handle, 0, SEEK_END) );
+
+ // current location
+ var_dump( ftell($file_handle) );
+
+ foreach($formats as $format) {
+ var_dump( fscanf($file_handle,$format) );
+ }
+ $counter++;
+ fclose($file_handle);
+ unlink($filename);
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation53.tmp";
+unlink($filename);
+?>
+--EXPECT--
+*** Test fscanf(): to read a file when file pointer is pointing to EOF ***
+
+-- iteration 1 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 2 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 3 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 4 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 5 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 6 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 7 --
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 8 --
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 9 --
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 10 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 11 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+-- iteration 12 --
+int(0)
+int(0)
+int(13)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - objects
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan a file to read objects */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): to read objects from a file ***\n";
+
+// declare a class
+class foo
+{
+ public $var1 = 1;
+ public $var2 = 2;
+ function __toString() {
+ return "Object";
+ }
+}
+
+// create an object
+$obj = new foo(); //creating new object
+
+// create a file
+$filename = "$file_path/fscanf_variation54.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+//writing object to the file
+fwrite($file_handle, $obj);
+
+//closing the file
+fclose($file_handle);
+
+// various formats
+$formats = array( "%d", "%f", "%e", "%u", " %s", "%x", "%o");
+
+$counter = 1;
+
+// opening file for read
+$file_handle = fopen($filename, "r");
+ if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+ }
+echo "\n-- iteration $counter --\n";
+
+foreach($formats as $format) {
+ var_dump( fscanf($file_handle,$format) );
+ rewind($file_handle);
+}
+
+fclose($file_handle);
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation54.tmp";
+unlink($filename);
+?>
+--EXPECT--
+*** Test fscanf(): to read objects from a file ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "Object"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+
+*** Done ***
\ No newline at end of file
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - tracking file pointer while reading
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/*
+ Test fscanf() to scan data using different format types and also
+ tracking the file pointer movement along with reading
+ */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): tracking file pointer along with reading data from file ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation55.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid data
+$valid_data = array(
+ 12345, // integer value
+ -12345,
+ 123.45, // float value
+ -123.45,
+ 0x123B, // hexadecimal value
+ 0x12ab,
+ 0123, // octal value
+ -0123,
+ "abcde", // string
+ 'abcde',
+ 10e3, // exponential value
+ 10e-3
+);
+// various formats
+$int_formats = array( "%d", "%f", "%s", "%o", "%x", "%u", "%c", "%e");
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_data as $data) {
+ fprintf($file_handle, $data);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+$modes = array("r", "rb", "rt");
+
+foreach($modes as $mode) {
+
+ echo "\n*** File opened in $mode mode ***\n";
+ // opening the file for reading
+ $file_handle = fopen($filename, $mode);
+ if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+ }
+
+ $counter = 1;
+ // reading different data from file using different formats
+ foreach($int_formats as $int_format) {
+ // current file pointer position
+ var_dump( ftell($file_handle) );
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ // current file pointer position after rewind operation
+ var_dump( ftell($file_handle) );
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( ftell($file_handle) );
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+ } // end of inner for loop
+} // end of outer for loop
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation55.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): tracking file pointer along with reading data from file ***
+
+*** File opened in r mode ***
+int(0)
+int(0)
+
+-- iteration 1 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-123)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 2 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 3 --
+int(0)
+array(1) {
+ [0]=>
+ string(5) "12345"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(6) "-12345"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(6) "123.45"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(7) "-123.45"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(3) "-83"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(5) "10000"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(4) "0.01"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 4 --
+int(0)
+array(1) {
+ [0]=>
+ int(5349)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-5349)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(2487)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(319)
+}
+int(38)
+array(1) {
+ [0]=>
+ NULL
+}
+int(41)
+array(1) {
+ [0]=>
+ NULL
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(4096)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 5 --
+int(0)
+array(1) {
+ [0]=>
+ int(74565)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-74565)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(291)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-291)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(18023)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(18297)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(131)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-131)
+}
+int(45)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(51)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(57)
+array(1) {
+ [0]=>
+ int(65536)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 6 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ string(10) "4294954951"
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ string(10) "4294967173"
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ string(10) "4294967213"
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 7 --
+int(0)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 8 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+
+*** File opened in rb mode ***
+int(0)
+int(0)
+
+-- iteration 1 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-123)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 2 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 3 --
+int(0)
+array(1) {
+ [0]=>
+ string(5) "12345"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(6) "-12345"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(6) "123.45"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(7) "-123.45"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(3) "-83"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(5) "10000"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(4) "0.01"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 4 --
+int(0)
+array(1) {
+ [0]=>
+ int(5349)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-5349)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(2487)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(319)
+}
+int(38)
+array(1) {
+ [0]=>
+ NULL
+}
+int(41)
+array(1) {
+ [0]=>
+ NULL
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(4096)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 5 --
+int(0)
+array(1) {
+ [0]=>
+ int(74565)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-74565)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(291)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-291)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(18023)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(18297)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(131)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-131)
+}
+int(45)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(51)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(57)
+array(1) {
+ [0]=>
+ int(65536)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 6 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ string(10) "4294954951"
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ string(10) "4294967173"
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ string(10) "4294967213"
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 7 --
+int(0)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 8 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+
+*** File opened in rt mode ***
+int(0)
+int(0)
+
+-- iteration 1 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-123)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 2 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 3 --
+int(0)
+array(1) {
+ [0]=>
+ string(5) "12345"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(6) "-12345"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(6) "123.45"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(7) "-123.45"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(3) "-83"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(5) "abcde"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(5) "10000"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(4) "0.01"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 4 --
+int(0)
+array(1) {
+ [0]=>
+ int(5349)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-5349)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-83)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(2487)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(319)
+}
+int(38)
+array(1) {
+ [0]=>
+ NULL
+}
+int(41)
+array(1) {
+ [0]=>
+ NULL
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(4096)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 5 --
+int(0)
+array(1) {
+ [0]=>
+ int(74565)
+}
+int(6)
+array(1) {
+ [0]=>
+ int(-74565)
+}
+int(13)
+array(1) {
+ [0]=>
+ int(291)
+}
+int(20)
+array(1) {
+ [0]=>
+ int(-291)
+}
+int(28)
+array(1) {
+ [0]=>
+ int(18023)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(18297)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(131)
+}
+int(41)
+array(1) {
+ [0]=>
+ int(-131)
+}
+int(45)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(51)
+array(1) {
+ [0]=>
+ int(703710)
+}
+int(57)
+array(1) {
+ [0]=>
+ int(65536)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 6 --
+int(0)
+array(1) {
+ [0]=>
+ int(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ string(10) "4294954951"
+}
+int(13)
+array(1) {
+ [0]=>
+ int(123)
+}
+int(20)
+array(1) {
+ [0]=>
+ string(10) "4294967173"
+}
+int(28)
+array(1) {
+ [0]=>
+ int(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ int(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ int(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ string(10) "4294967213"
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ int(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ int(0)
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 7 --
+int(0)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(6)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(13)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(20)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(28)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(33)
+array(1) {
+ [0]=>
+ string(1) "4"
+}
+int(38)
+array(1) {
+ [0]=>
+ string(1) "8"
+}
+int(41)
+array(1) {
+ [0]=>
+ string(1) "-"
+}
+int(45)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(51)
+array(1) {
+ [0]=>
+ string(1) "a"
+}
+int(57)
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+int(63)
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+int(68)
+bool(false)
+int(68)
+int(0)
+
+-- iteration 8 --
+int(0)
+array(1) {
+ [0]=>
+ float(12345)
+}
+int(6)
+array(1) {
+ [0]=>
+ float(-12345)
+}
+int(13)
+array(1) {
+ [0]=>
+ float(123.45)
+}
+int(20)
+array(1) {
+ [0]=>
+ float(-123.45)
+}
+int(28)
+array(1) {
+ [0]=>
+ float(4667)
+}
+int(33)
+array(1) {
+ [0]=>
+ float(4779)
+}
+int(38)
+array(1) {
+ [0]=>
+ float(83)
+}
+int(41)
+array(1) {
+ [0]=>
+ float(-83)
+}
+int(45)
+array(1) {
+ [0]=>
+ NULL
+}
+int(51)
+array(1) {
+ [0]=>
+ NULL
+}
+int(57)
+array(1) {
+ [0]=>
+ float(10000)
+}
+int(63)
+array(1) {
+ [0]=>
+ float(0.01)
+}
+int(68)
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with strings
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan strings using different integer format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with strings ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation6.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of strings
+$strings = array (
+ "",
+ '',
+ "0",
+ '0',
+ "1",
+ '1',
+ "\x01",
+ '\x01',
+ "\01",
+ '\01',
+ 'string',
+ "string",
+ "true",
+ "FALSE",
+ 'false',
+ 'TRUE',
+ "NULL",
+ 'null'
+);
+
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($strings as $string) {
+ fprintf($file_handle, $string);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation6.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with strings ***
+
+-- iteration 1 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 2 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 3 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 4 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 5 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 6 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 9 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 10 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 11 --
+NULL
+NULL
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ int(1)
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+NULL
+NULL
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - integer formats with boolean
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan boolean data using different integer format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different integer format types with boolean data ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation7.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of boolean types
+$bool_types = array (
+ true,
+ false,
+ TRUE,
+ FALSE,
+);
+
+$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
+
+$counter = 1;
+
+// writing to the file
+foreach($bool_types as $value) {
+ fprintf($file_handle, $value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different integer formats
+foreach($int_formats as $int_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$int_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation7.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different integer format types with boolean data ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+array(1) {
+ [0]=>
+ int(1)
+}
+NULL
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+NULL
+array(0) {
+}
+NULL
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with float values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan different float values using different format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with different float values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation8.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// different valid float vlaues
+$valid_floats = array(
+-2147483649, // float value
+ 2147483648, // float value
+ -0x80000001, // float value, beyond max negative int
+ 0x800000001, // float value, beyond max positive int
+ 020000000001, // float value, beyond max positive int
+ -020000000001, // float value, beyond max negative int
+ 0.0,
+ -0.1,
+ 10.0000000000000000005,
+ 10.5e+5,
+ 1e5,
+ -1e5,
+ 1e-5,
+ -1e-5,
+ 1e+5,
+ -1e+5,
+ 1E5,
+ -1E5,
+ 1E+5,
+ -1E+5,
+ 1E-5,
+ -1E-5,
+ .5e+7,
+ -.5e+7,
+ .6e-19,
+ -.6e-19,
+ .05E+44,
+ -.05E+44,
+ .0034E-30,
+ -.0034E-30
+);
+
+// various float formats
+$float_formats = array( "%f",
+ "%hf", "%lf", "%Lf",
+ " %f", "%f ", "% f",
+ "\t%f", "\n%f", "%4f",
+ "%30f", "%[0-9]", "%*f",
+ );
+
+$counter = 1;
+
+// writing to the file
+foreach($valid_floats as $float_value) {
+ fprintf($file_handle, $float_value);
+ fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different float formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation8.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with different float values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(3435)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(1000)
+}
+array(1) {
+ [0]=>
+ float(-100)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(5000)
+}
+array(1) {
+ [0]=>
+ float(-500)
+}
+array(1) {
+ [0]=>
+ float(6)
+}
+array(1) {
+ [0]=>
+ float(-6)
+}
+array(1) {
+ [0]=>
+ float(5)
+}
+array(1) {
+ [0]=>
+ float(-5)
+}
+array(1) {
+ [0]=>
+ float(3.4)
+}
+array(1) {
+ [0]=>
+ float(-3.4)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(34359738369)
+}
+array(1) {
+ [0]=>
+ float(2147483649)
+}
+array(1) {
+ [0]=>
+ float(-2147483649)
+}
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(-0.1)
+}
+array(1) {
+ [0]=>
+ float(10)
+}
+array(1) {
+ [0]=>
+ float(1050000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(100000)
+}
+array(1) {
+ [0]=>
+ float(-100000)
+}
+array(1) {
+ [0]=>
+ float(1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(-1.0E-5)
+}
+array(1) {
+ [0]=>
+ float(5000000)
+}
+array(1) {
+ [0]=>
+ float(-5000000)
+}
+array(1) {
+ [0]=>
+ float(6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(-6.0E-20)
+}
+array(1) {
+ [0]=>
+ float(5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(-5.0E+42)
+}
+array(1) {
+ [0]=>
+ float(3.4E-33)
+}
+array(1) {
+ [0]=>
+ float(-3.4E-33)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483648"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(11) "34359738369"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483649"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(2) "10"
+}
+array(1) {
+ [0]=>
+ string(7) "1050000"
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(6) "100000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(7) "5000000"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "6"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "5"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(1) "3"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***
--- /dev/null
+--TEST--
+Test fscanf() function: usage variations - float formats with integer values
+--FILE--
+<?php
+
+/*
+ Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
+ Description: Parses input from a file according to a format
+*/
+
+/* Test fscanf() to scan integer values using different float format types */
+
+$file_path = dirname(__FILE__);
+
+echo "*** Test fscanf(): different float format types with integer values ***\n";
+
+// create a file
+$filename = "$file_path/fscanf_variation9.tmp";
+$file_handle = fopen($filename, "w");
+if($file_handle == false)
+ exit("Error:failed to open file $filename");
+
+// array of float type values
+
+$integer_values = array (
+ 0,
+ 1,
+ -1,
+ -2147483648, // max negative integer value
+ -2147483647,
+ 2147483647, // max positive integer value
+ 2147483640,
+ 0x123B, // integer as hexadecimal
+ 0x12ab,
+ 0Xfff,
+ 0XFA,
+ -0x80000000, // max negative integer as hexadecimal
+ 0x7fffffff, // max postive integer as hexadecimal
+ 0x7FFFFFFF, // max postive integer as hexadecimal
+ 0123, // integer as octal
+ 01912, // should be quivalent to octal 1
+ -020000000000, // max negative integer as octal
+ 017777777777 // max positive integer as octal
+);
+
+$float_formats = array( "%f", "%hf", "%lf", "%Lf", " %f", "%f ", "% f", "\t%f", "\n%f", "%4f", "%30f", "%[0-9]", "%*f");
+
+$counter = 1;
+
+// writing to the file
+foreach($integer_values as $value) {
+ @fprintf($file_handle, $value);
+ @fprintf($file_handle, "\n");
+}
+// closing the file
+fclose($file_handle);
+
+// opening the file for reading
+$file_handle = fopen($filename, "r");
+if($file_handle == false) {
+ exit("Error:failed to open file $filename");
+}
+
+$counter = 1;
+// reading the values from file using different float formats
+foreach($float_formats as $float_format) {
+ // rewind the file so that for every foreach iteration the file pointer starts from bof
+ rewind($file_handle);
+ echo "\n-- iteration $counter --\n";
+ while( !feof($file_handle) ) {
+ var_dump( fscanf($file_handle,$float_format) );
+ }
+ $counter++;
+}
+
+echo "\n*** Done ***";
+?>
+--CLEAN--
+<?php
+$file_path = dirname(__FILE__);
+$filename = "$file_path/fscanf_variation9.tmp";
+unlink($filename);
+?>
+--EXPECTF--
+*** Test fscanf(): different float format types with integer values ***
+
+-- iteration 1 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 2 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 3 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 4 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 5 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 6 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 7 --
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+
+Warning: fscanf(): Bad scan conversion character " " in %s on line %d
+NULL
+bool(false)
+
+-- iteration 8 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 9 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 10 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-214)
+}
+array(1) {
+ [0]=>
+ float(2147)
+}
+bool(false)
+
+-- iteration 11 --
+array(1) {
+ [0]=>
+ float(0)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(-2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483640)
+}
+array(1) {
+ [0]=>
+ float(4667)
+}
+array(1) {
+ [0]=>
+ float(4779)
+}
+array(1) {
+ [0]=>
+ float(4095)
+}
+array(1) {
+ [0]=>
+ float(250)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+array(1) {
+ [0]=>
+ float(83)
+}
+array(1) {
+ [0]=>
+ float(1)
+}
+array(1) {
+ [0]=>
+ float(-2147483648)
+}
+array(1) {
+ [0]=>
+ float(2147483647)
+}
+bool(false)
+
+-- iteration 12 --
+array(1) {
+ [0]=>
+ string(1) "0"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483640"
+}
+array(1) {
+ [0]=>
+ string(4) "4667"
+}
+array(1) {
+ [0]=>
+ string(4) "4779"
+}
+array(1) {
+ [0]=>
+ string(4) "4095"
+}
+array(1) {
+ [0]=>
+ string(3) "250"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+array(1) {
+ [0]=>
+ string(2) "83"
+}
+array(1) {
+ [0]=>
+ string(1) "1"
+}
+array(1) {
+ [0]=>
+ NULL
+}
+array(1) {
+ [0]=>
+ string(10) "2147483647"
+}
+bool(false)
+
+-- iteration 13 --
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+array(0) {
+}
+bool(false)
+
+*** Done ***