fgetc_variation3.phpt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --TEST--
  2. Test fgetc() function : usage variations - write only modes (Bug #42036)
  3. --FILE--
  4. <?php
  5. /*
  6. Prototype: string fgetc ( resource $handle );
  7. Description: Gets character from file pointer
  8. */
  9. /* try fgetc on files which are opened in non readable modes
  10. w, wb, wt,
  11. a, ab, at,
  12. x, xb, xt
  13. */
  14. // include the header for common test function
  15. include ("file.inc");
  16. echo "*** Testing fgetc() with file opened in write only mode ***\n";
  17. $file_modes = array("w", "wb", "wt", "a", "ab", "at", "x", "xb", "xt");
  18. $filename = dirname(__FILE__)."/fgetc_variation3.tmp";
  19. foreach ($file_modes as $file_mode ) {
  20. echo "-- File opened in mode : $file_mode --\n";
  21. $file_handle = fopen($filename, $file_mode);
  22. if(!$file_handle) {
  23. echo "Error: failed to open file $filename!\n";
  24. exit();
  25. }
  26. $data = "fgetc_variation test";
  27. fwrite($file_handle, $data);
  28. // rewind the file pointer to beginning of the file
  29. var_dump( rewind($file_handle) );
  30. var_dump( ftell($file_handle) );
  31. var_dump( feof($file_handle) );
  32. // read from file
  33. var_dump( fgetc($file_handle) ); // expected : no chars should be read
  34. var_dump( ftell($file_handle) ); // ensure that file pointer position is not changed
  35. var_dump( feof($file_handle) ); // check if end of file pointer is set
  36. // close the file
  37. fclose($file_handle);
  38. // delete the file
  39. unlink($filename);
  40. }
  41. echo "Done\n";
  42. ?>
  43. --EXPECTF--
  44. *** Testing fgetc() with file opened in write only mode ***
  45. -- File opened in mode : w --
  46. bool(true)
  47. int(0)
  48. bool(false)
  49. bool(false)
  50. int(0)
  51. bool(false)
  52. -- File opened in mode : wb --
  53. bool(true)
  54. int(0)
  55. bool(false)
  56. bool(false)
  57. int(0)
  58. bool(false)
  59. -- File opened in mode : wt --
  60. bool(true)
  61. int(0)
  62. bool(false)
  63. bool(false)
  64. int(0)
  65. bool(false)
  66. -- File opened in mode : a --
  67. bool(true)
  68. int(0)
  69. bool(false)
  70. bool(false)
  71. int(0)
  72. bool(false)
  73. -- File opened in mode : ab --
  74. bool(true)
  75. int(0)
  76. bool(false)
  77. bool(false)
  78. int(0)
  79. bool(false)
  80. -- File opened in mode : at --
  81. bool(true)
  82. int(0)
  83. bool(false)
  84. bool(false)
  85. int(0)
  86. bool(false)
  87. -- File opened in mode : x --
  88. bool(true)
  89. int(0)
  90. bool(false)
  91. bool(false)
  92. int(0)
  93. bool(false)
  94. -- File opened in mode : xb --
  95. bool(true)
  96. int(0)
  97. bool(false)
  98. bool(false)
  99. int(0)
  100. bool(false)
  101. -- File opened in mode : xt --
  102. bool(true)
  103. int(0)
  104. bool(false)
  105. bool(false)
  106. int(0)
  107. bool(false)
  108. Done