Return to file_put_contents_variation7-win32.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test file_put_contents() function : usage variation - various absolute and relative paths 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 run on Windows"); 9: ?> 10: --FILE-- 11: <?php 12: /* Prototype : int file_put_contents(string file, mixed data [, int flags [, resource context]]) 13: * Description: Write/Create a file with contents data and return the number of bytes written 14: * Source code: ext/standard/file.c 15: * Alias to functions: 16: */ 17: 18: echo "*** Testing file_put_contents() : usage variation ***\n"; 19: 20: $mainDir = "filePutContentsVar7.dir"; 21: $subDir = "filePutContentsVar7Sub"; 22: $absMainDir = dirname(__FILE__)."/".$mainDir; 23: mkdir($absMainDir); 24: $absSubDir = $absMainDir."\\".$subDir; 25: mkdir($absSubDir); 26: 27: $old_dir_path = getcwd(); 28: chdir(dirname(__FILE__)); 29: $unixifiedDir = '/'.substr(str_replace('\\','/',$absSubDir),3); 30: 31: 32: // Note invalid dirs in p8 result in (The system cannot find the path specified.) 33: // rather than No Such File or Directory in php.net 34: $allDirs = array( 35: // absolute paths 36: "$absSubDir\\", 37: "$absSubDir\\..\\".$subDir, 38: "$absSubDir\\\\..\\.\\".$subDir, 39: "$absSubDir\\..\\..\\".$mainDir."\\.\\".$subDir, 40: "$absSubDir\\..\\\\\\".$subDir."\\\\..\\\\..\\".$subDir, 41: "$absSubDir\\BADDIR", 42: 43: // relative paths 44: $mainDir."\\".$subDir, 45: $mainDir."\\\\".$subDir, 46: $mainDir."\\\\\\".$subDir, 47: ".\\".$mainDir."\\..\\".$mainDir."\\".$subDir, 48: "BADDIR", 49: 50: // unixifed path 51: $unixifiedDir, 52: ); 53: 54: $filename = 'FileGetContentsVar7.tmp'; 55: $absFile = $absSubDir.'/'.$filename; 56: $data = "This was the written data"; 57: 58: for($i = 0; $i<count($allDirs); $i++) { 59: $j = $i+1; 60: $dir = $allDirs[$i]; 61: echo "\n-- Iteration $j --\n"; 62: $res = file_put_contents($dir."\\".$filename, ($data + $i)); 63: if ($res !== false) { 64: $in = file_get_contents($absFile); 65: if ($in == ($data + $i)) { 66: echo "Data written correctly\n"; 67: } 68: else { 69: echo "Data not written correctly or to correct place\n"; 70: } 71: unlink($dir."/".$filename); 72: } 73: else { 74: echo "No data written\n"; 75: } 76: 77: } 78: 79: chdir($old_dir_path); 80: rmdir($absSubDir); 81: rmdir($absMainDir); 82: 83: echo "\n*** Done ***\n"; 84: ?> 85: --EXPECTF-- 86: *** Testing file_put_contents() : usage variation *** 87: 88: -- Iteration 1 -- 89: Data written correctly 90: 91: -- Iteration 2 -- 92: Data written correctly 93: 94: -- Iteration 3 -- 95: Data written correctly 96: 97: -- Iteration 4 -- 98: Data written correctly 99: 100: -- Iteration 5 -- 101: 102: Warning: file_put_contents(%sfilePutContentsVar7.dir\filePutContentsVar7Sub\..\\\filePutContentsVar7Sub\\..\\..\filePutContentsVar7Sub\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d 103: No data written 104: 105: -- Iteration 6 -- 106: 107: Warning: file_put_contents(%sfilePutContentsVar7.dir\filePutContentsVar7Sub\BADDIR\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d 108: No data written 109: 110: -- Iteration 7 -- 111: Data written correctly 112: 113: -- Iteration 8 -- 114: Data written correctly 115: 116: -- Iteration 9 -- 117: Data written correctly 118: 119: -- Iteration 10 -- 120: Data written correctly 121: 122: -- Iteration 11 -- 123: 124: Warning: file_put_contents(BADDIR\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d 125: No data written 126: 127: -- Iteration 12 -- 128: Data written correctly 129: 130: *** Done ***