1--TEST-- 2Test fopen and fclose() functions - usage variations - "a" mode 3--FILE-- 4<?php 5/* 6 fopen() function: 7 Prototype: resource fopen(string $filename, string $mode 8 [, bool $use_include_path [, resource $context]] ); 9 Description: Opens file or URL. 10*/ 11/* 12 fclose() function: 13 Prototype: bool fclose ( resource $handle ); 14 Description: Closes an open file pointer 15*/ 16 17/* Test fopen() and fclose(): Opening the file in "a" mode, 18 checking for the file creation, write & read operations, 19 checking for the file pointer position, 20 and fclose function 21*/ 22$file_path = dirname(__FILE__); 23require($file_path."/file.inc"); 24 25create_files($file_path, 1, "text_with_new_line", 0755, 20, "w", "007_variation", 5, "bytes"); 26$file = $file_path."/007_variation5.tmp"; 27$string = "abcdefghij\nmnopqrst\tuvwxyz\n0123456789"; 28 29echo "*** Test fopen() & fclose() functions: with 'a' mode ***\n"; 30$file_handle = fopen($file, "a"); //opening the file "a" mode 31var_dump($file_handle); //Check for the content of handle 32var_dump( get_resource_type($file_handle) ); //Check for the type of resource 33var_dump( fwrite($file_handle, $string) ); //Check for write operation; passes; expected:size of the $string 34rewind($file_handle); 35var_dump( fread($file_handle, 100) ); //Check for read operation; fails; expected: empty string 36var_dump( ftell($file_handle) ); //File pointer position after read operation, expected at the end of the file 37var_dump( fclose($file_handle) ); //Check for close operation on the file handle 38var_dump( get_resource_type($file_handle) ); //Check whether resource is lost after close operation 39var_dump( filesize($file) ); //Check that data hasn't over written; Expected: Size of (initial data + newly added data) 40 41unlink($file); //Deleting the file 42fclose( fopen($file, "a") ); //Opening the non-existing file in "a" mode, which will be created 43var_dump( file_exists($file) ); //Check for the existence of file 44echo "*** Done ***\n"; 45--CLEAN-- 46<?php 47unlink(dirname(__FILE__)."/007_variation5.tmp"); 48?> 49--EXPECTF-- 50*** Test fopen() & fclose() functions: with 'a' mode *** 51resource(%d) of type (stream) 52string(6) "stream" 53int(37) 54string(0) "" 55int(0) 56bool(true) 57string(7) "Unknown" 58int(57) 59bool(true) 60*** Done *** 61