readfile_variation8-win32.phpt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. --TEST--
  2. Test readfile() function : variation
  3. --CREDITS--
  4. Dave Kelsey <d_kelsey@uk.ibm.com>
  5. --SKIPIF--
  6. <?php
  7. if(substr(PHP_OS, 0, 3) != "WIN")
  8. die("skip Only valid for Windows");
  9. ?>
  10. --FILE--
  11. <?php
  12. /* Prototype : int readfile(string filename [, bool use_include_path[, resource context]])
  13. * Description: Output a file or a URL
  14. * Source code: ext/standard/file.c
  15. * Alias to functions:
  16. */
  17. echo "*** Testing readfile() : variation ***\n";
  18. $mainDir = "readfileVar8";
  19. $subDir = "readfileVar8Sub";
  20. $absMainDir = dirname(__FILE__)."\\".$mainDir;
  21. mkdir($absMainDir);
  22. $absSubDir = $absMainDir."\\".$subDir;
  23. mkdir($absSubDir);
  24. $theFile = "fileToRead.tmp";
  25. $absFile = $absSubDir.'/'.$theFile;
  26. // create the file
  27. $h = fopen($absFile,"w");
  28. fwrite($h, "The File Contents");
  29. fclose($h);
  30. $old_dir_path = getcwd();
  31. chdir(dirname(__FILE__));
  32. $unixifiedDir = '/'.substr(str_replace('\\','/',$absSubDir),3);
  33. $allDirs = array(
  34. // absolute paths
  35. "$absSubDir\\",
  36. "$absSubDir\\..\\".$subDir,
  37. "$absSubDir\\\\..\\.\\".$subDir,
  38. "$absSubDir\\..\\..\\".$mainDir."\\.\\".$subDir,
  39. "$absSubDir\\..\\\\\\".$subDir."\\\\..\\\\..\\".$subDir,
  40. "$absSubDir\\BADDIR",
  41. // relative paths
  42. $mainDir."\\".$subDir,
  43. $mainDir."\\\\".$subDir,
  44. $mainDir."\\\\\\".$subDir,
  45. ".\\".$mainDir."\\..\\".$mainDir."\\".$subDir,
  46. "BADDIR",
  47. // unixifed path
  48. $unixifiedDir,
  49. );
  50. for($i = 0; $i<count($allDirs); $i++) {
  51. $j = $i+1;
  52. $dir = $allDirs[$i];
  53. echo "\n-- $dir --\n";
  54. $ok = readfile($dir.'\\'.$theFile);
  55. if ($ok === 1) {
  56. echo "\n";
  57. }
  58. }
  59. unlink($absFile);
  60. chdir($old_dir_path);
  61. rmdir($absSubDir);
  62. rmdir($absMainDir);
  63. echo "\n*** Done ***\n";
  64. ?>
  65. --EXPECTF--
  66. *** Testing readfile() : variation ***
  67. -- %s\readfileVar8\readfileVar8Sub\ --
  68. The File Contents
  69. -- %s\readfileVar8\readfileVar8Sub\..\readfileVar8Sub --
  70. The File Contents
  71. -- %s\readfileVar8\readfileVar8Sub\\..\.\readfileVar8Sub --
  72. The File Contents
  73. -- %s\readfileVar8\readfileVar8Sub\..\..\readfileVar8\.\readfileVar8Sub --
  74. The File Contents
  75. -- %s\readfileVar8\readfileVar8Sub\..\\\readfileVar8Sub\\..\\..\readfileVar8Sub --
  76. Warning: readfile(%s\readfileVar8\readfileVar8Sub\..\\\readfileVar8Sub\\..\\..\readfileVar8Sub\fileToRead.tmp): failed to open stream: No such file or directory in %s on line %d
  77. -- %s\readfileVar8\readfileVar8Sub\BADDIR --
  78. Warning: readfile(%s\readfileVar8\readfileVar8Sub\BADDIR\fileToRead.tmp): failed to open stream: No such file or directory in %s on line %d
  79. -- readfileVar8\readfileVar8Sub --
  80. The File Contents
  81. -- readfileVar8\\readfileVar8Sub --
  82. The File Contents
  83. -- readfileVar8\\\readfileVar8Sub --
  84. The File Contents
  85. -- .\readfileVar8\..\readfileVar8\readfileVar8Sub --
  86. The File Contents
  87. -- BADDIR --
  88. Warning: readfile(BADDIR\fileToRead.tmp): failed to open stream: No such file or directory in %s on line %d
  89. -- /%s/readfileVar8/readfileVar8Sub --
  90. The File Contents
  91. *** Done ***