1--TEST-- 2Test fopen() function : variation: interesting paths, use include path = true 3--CREDITS-- 4Dave Kelsey <d_kelsey@uk.ibm.com> 5--SKIPIF-- 6<?php 7if(substr(PHP_OS, 0, 3) != "WIN") 8 die("skip Run only on Windows"); 9if (!is_writable('c:\\fopen_variation10.tmp')) { 10 die('skip. C:\\ not writable.'); 11} 12 13?> 14--FILE-- 15<?php 16/* Prototype : resource fopen(string filename, string mode [, bool use_include_path [, resource context]]) 17 * Description: Open a file or a URL and return a file pointer 18 * Source code: ext/standard/file.c 19 * Alias to functions: 20 */ 21 22echo "*** Testing fopen() : variation ***\n"; 23 24// fopen with interesting windows paths. 25$testdir = dirname(__FILE__).'/fopen11.tmpDir'; 26$rootdir = 'fopen11.tmpdirTwo'; 27mkdir($testdir); 28mkdir('c:\\'.$rootdir); 29 30$unixifiedDir = '/'.substr(str_replace('\\','/',$testdir),3); 31 32$paths = array('c:\\', 33 'c:', 34 'c', 35 '\\', 36 '/', 37 'c:'.$rootdir, 38 'c:adir', 39 'c:\\/', 40 'c:\\'.$rootdir.'\\/', 41 'c:\\'.$rootdir.'\\', 42 'c:\\'.$rootdir.'/', 43 $unixifiedDir, 44 '/sortout'); 45 46$file = "fopen_variation11.tmp"; 47$firstfile = 'c:\\'.$rootdir.'\\'.$file; 48$secondfile = $testdir.'\\'.$file; 49$thirdfile = 'c:\\'.$file; 50 51$h = fopen($firstfile, 'w'); 52fwrite($h, "file in $rootdir"); 53fclose($h); 54 55$h = fopen($secondfile, 'w'); 56fwrite($h, "file in fopen11.tmpDir"); 57fclose($h); 58 59$h = fopen($thirdfile, 'w'); 60fwrite($h, "file in root"); 61fclose($h); 62 63foreach($paths as $path) { 64 echo "\n--$path--\n"; 65 $toFind = $path.'\\'.$file; 66 $h = fopen($toFind, 'r', true); 67 if ($h === false) { 68 echo "file not opened for read\n"; 69 } 70 else { 71 fpassthru($h); 72 echo "\n"; 73 } 74 fclose($h); 75}; 76 77unlink($firstfile); 78unlink($secondfile); 79unlink($thirdfile); 80rmdir($testdir); 81rmdir('c:\\'.$rootdir); 82 83?> 84===DONE=== 85--EXPECTF-- 86*** Testing fopen() : variation *** 87 88--c:\-- 89file in root 90 91--c:-- 92file in root 93 94--c-- 95 96Warning: fopen(c\fopen_variation11.tmp): failed to open stream: No such file or directory in %s on line %d 97file not opened for read 98 99Warning: fclose() expects parameter 1 to be resource, boolean given in %s on line %d 100 101--\-- 102 103Warning: fopen(\\FOPEN_VARIATION11.TMP): failed to open stream: Invalid argument in %s on line %d 104file not opened for read 105 106Warning: fclose() expects parameter 1 to be resource, boolean given in %s on line %d 107 108--/-- 109 110Warning: fopen(\\FOPEN_VARIATION11.TMP): failed to open stream: Invalid argument in %s on line %d 111file not opened for read 112 113Warning: fclose() expects parameter 1 to be resource, boolean given in %s on line %d 114 115--c:fopen11.tmpdirTwo-- 116file in fopen11.tmpdirTwo 117 118--c:adir-- 119 120Warning: fopen(c:adir\fopen_variation11.tmp): failed to open stream: No such file or directory in %s on line %d 121file not opened for read 122 123Warning: fclose() expects parameter 1 to be resource, boolean given in %s on line %d 124 125--c:\/-- 126file in root 127 128--c:\fopen11.tmpdirTwo\/-- 129file in fopen11.tmpdirTwo 130 131--c:\fopen11.tmpdirTwo\-- 132file in fopen11.tmpdirTwo 133 134--c:\fopen11.tmpdirTwo/-- 135file in fopen11.tmpdirTwo 136 137--%s/fopen11.tmpDir-- 138file in fopen11.tmpDir 139 140--/sortout-- 141 142Warning: fopen(/sortout\fopen_variation11.tmp): failed to open stream: No such file or directory in %s on line %d 143file not opened for read 144 145Warning: fclose() expects parameter 1 to be resource, boolean given in %s on line %d 146===DONE=== 147 148