1--TEST-- 2Test file_put_contents() function : usage variation - various absolute and relative paths 3--CREDITS-- 4Dave Kelsey <d_kelsey@uk.ibm.com> 5--FILE-- 6<?php 7echo "*** Testing file_put_contents() : usage variation ***\n"; 8 9$mainDir = "filePutContentsVar7.dir"; 10$subDir = "filePutContentsVar7Sub"; 11$absMainDir = __DIR__."/".$mainDir; 12mkdir($absMainDir); 13$absSubDir = $absMainDir."/".$subDir; 14mkdir($absSubDir); 15 16$old_dir_path = getcwd(); 17chdir(__DIR__); 18 19 20// Note invalid dirs in p8 result in (The system cannot find the path specified.) 21// rather than No Such File or Directory in php.net 22$allDirs = array( 23 // absolute paths 24 "$absSubDir/", 25 "$absSubDir/../".$subDir, 26 "$absSubDir//.././".$subDir, 27 "$absSubDir/../../".$mainDir."/./".$subDir, 28 "$absSubDir/..///".$subDir."//..//../".$subDir, 29 "$absSubDir/BADDIR", 30 31 // relative paths 32 $mainDir."/".$subDir, 33 $mainDir."//".$subDir, 34 $mainDir."///".$subDir, 35 "./".$mainDir."/../".$mainDir."/".$subDir, 36 "BADDIR", 37 38); 39 40$filename = 'FileGetContentsVar7.tmp'; 41$absFile = $absSubDir.'/'.$filename; 42$data = "This was the written data"; 43 44for($i = 0; $i<count($allDirs); $i++) { 45 $j = $i+1; 46 $dir = $allDirs[$i]; 47 echo "\n-- Iteration $j --\n"; 48 $res = file_put_contents($dir."/".$filename, ($data . $i)); 49 if ($res !== false) { 50 $in = file_get_contents($absFile); 51 if ($in == ($data . $i)) { 52 echo "Data written correctly\n"; 53 } 54 else { 55 echo "Data not written correctly or to correct place\n"; 56 } 57 unlink($dir."/".$filename); 58 } 59 else { 60 echo "No data written\n"; 61 } 62 63} 64 65chdir($old_dir_path); 66 67echo "\n*** Done ***\n"; 68?> 69--CLEAN-- 70<?php 71$mainDir = "filePutContentsVar7.dir"; 72$subDir = "filePutContentsVar7Sub"; 73$absMainDir = __DIR__."/".$mainDir; 74$absSubDir = $absMainDir."/".$subDir; 75$filename = 'FileGetContentsVar7.tmp'; 76$absFile = $absSubDir.'/'.$filename; 77@unlink($absFile); 78rmdir($absSubDir); 79rmdir($absMainDir); 80?> 81--EXPECTF-- 82*** Testing file_put_contents() : usage variation *** 83 84-- Iteration 1 -- 85Data written correctly 86 87-- Iteration 2 -- 88Data written correctly 89 90-- Iteration 3 -- 91Data written correctly 92 93-- Iteration 4 -- 94Data written correctly 95 96-- Iteration 5 -- 97 98Warning: file_put_contents(%sfilePutContentsVar7.dir/filePutContentsVar7Sub/..///filePutContentsVar7Sub//..//../filePutContentsVar7Sub/FileGetContentsVar7.tmp): Failed to open stream: %s in %s on line %d 99No data written 100 101-- Iteration 6 -- 102 103Warning: file_put_contents(%sfilePutContentsVar7.dir/filePutContentsVar7Sub/BADDIR/FileGetContentsVar7.tmp): Failed to open stream: %s in %s on line %d 104No data written 105 106-- Iteration 7 -- 107Data written correctly 108 109-- Iteration 8 -- 110Data written correctly 111 112-- Iteration 9 -- 113Data written correctly 114 115-- Iteration 10 -- 116Data written correctly 117 118-- Iteration 11 -- 119 120Warning: file_put_contents(BADDIR/FileGetContentsVar7.tmp): Failed to open stream: %s in %s on line %d 121No data written 122 123*** Done *** 124