007_variation20.phpt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. Test fopen and fclose() functions - usage variations - "w+b" mode
  3. --FILE--
  4. <?php
  5. /* Test fopen() and fclose(): Opening the file in "w+b" mode,
  6. checking for the file creation, write & read operations,
  7. checking for the file pointer position,
  8. checking for the file truncation when trying to open an existing file in "w+b" mode,
  9. and fclose function
  10. */
  11. $file_path = __DIR__;
  12. require($file_path."/file.inc");
  13. create_files($file_path, 1, "text_with_new_line", 0755, 20, "w", "007_variation", 20, "bytes");
  14. $file = $file_path."/007_variation20.tmp";
  15. $string = "abcdefghij\nmnopqrst\tuvwxyz\n0123456789";
  16. echo "*** Test fopen() & fclose() functions: with 'w+b' mode ***\n";
  17. $file_handle = fopen($file, "w+b"); //opening the file "w+b" mode
  18. var_dump($file_handle); //Check for the content of handle
  19. var_dump( get_resource_type($file_handle) ); //Check for the type of resource
  20. var_dump( ftell($file_handle) ); //Initial file pointer position, expected at the beginning of the file
  21. var_dump( fwrite($file_handle, $string) ); //Check for write operation; passes; expected:size of the $string
  22. var_dump( ftell($file_handle) ); //File pointer position after write operation, expected at the end of the file
  23. rewind($file_handle);
  24. var_dump( fread($file_handle, 100) ); //Check for read operation; passes; expected: content of file
  25. var_dump( ftell($file_handle) ); //File pointer position after read operation, expected at the end of the file
  26. var_dump( fclose($file_handle) ); //Check for close operation on the file handle
  27. var_dump( get_resource_type($file_handle) ); //Check whether resource is lost after close operation
  28. var_dump( filesize($file) ); //Check for size of existing data file before opening the file in "w+b" mode again, expected: size of content
  29. clearstatcache();
  30. fclose( fopen($file, "w+b") ); //Opening the existing data file again in "w+b" mode
  31. var_dump( filesize($file) ); //Check for size of existing data file after opening the file in "w+b" mode again, expected: 0 bytes
  32. clearstatcache();
  33. unlink($file); //Deleting the file
  34. fclose( fopen($file, "w+b") ); //Opening the non-existing file in "w+b" mode, which will be created
  35. var_dump( file_exists($file) ); //Check for the existence of file
  36. echo "*** Done ***\n";
  37. --CLEAN--
  38. <?php
  39. unlink(__DIR__."/007_variation20.tmp");
  40. ?>
  41. --EXPECTF--
  42. *** Test fopen() & fclose() functions: with 'w+b' mode ***
  43. resource(%d) of type (stream)
  44. string(6) "stream"
  45. int(0)
  46. int(37)
  47. int(37)
  48. string(37) "abcdefghij
  49. mnopqrst uvwxyz
  50. 0123456789"
  51. int(37)
  52. bool(true)
  53. string(7) "Unknown"
  54. int(37)
  55. int(0)
  56. bool(true)
  57. *** Done ***