1--TEST-- 2Test file_put_contents() function : usage variation - different types for context. 3--CREDITS-- 4Dave Kelsey <d_kelsey@uk.ibm.com> 5--FILE-- 6<?php 7/* Prototype : int file_put_contents(string file, mixed data [, int flags [, resource context]]) 8 * Description: Write/Create a file with contents data and return the number of bytes written 9 * Source code: ext/standard/file.c 10 * Alias to functions: 11 */ 12 13echo "*** Testing file_put_contents() : usage variation ***\n"; 14 15// Define error handler 16function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 17 if (error_reporting() != 0) { 18 // report non-silenced errors 19 echo "Error: $err_no - $err_msg, $filename($linenum)\n"; 20 } 21} 22set_error_handler('test_error_handler'); 23 24// Initialise function arguments not being substituted (if any) 25$filename = 'FilePutContentsVar4.tmp'; 26$absFile = dirname(__FILE__).'/'.$filename; 27 28$fileRes = fopen(__FILE__,'r'); 29$strContext = stream_context_create(); 30 31$data = "data to write"; 32 33//get an unset variable 34$unset_var = 10; 35unset ($unset_var); 36 37// define some classes 38class classWithToString 39{ 40 public function __toString() { 41 return "Class A object"; 42 } 43} 44 45class classWithoutToString 46{ 47} 48 49// heredoc string 50$heredoc = <<<EOT 51hello world 52EOT; 53 54// add arrays 55$index_array = array (1, 2, 3); 56$assoc_array = array ('one' => 1, 'two' => 2); 57 58//array of values to iterate over 59$inputs = array( 60 61 // int data 62 'int 0' => 0, 63 'int 1' => 1, 64 'int 12345' => 12345, 65 'int -12345' => -2345, 66 67 // float data 68 'float 10.5' => 10.5, 69 'float -10.5' => -10.5, 70 'float 12.3456789000e10' => 12.3456789000e10, 71 'float -12.3456789000e10' => -12.3456789000e10, 72 'float .5' => .5, 73 74 // array data 75 'empty array' => array(), 76 'int indexed array' => $index_array, 77 'associative array' => $assoc_array, 78 'nested arrays' => array('foo', $index_array, $assoc_array), 79 80 // null data 81 'uppercase NULL' => NULL, 82 'lowercase null' => null, 83 84 // boolean data 85 'lowercase true' => true, 86 'lowercase false' =>false, 87 'uppercase TRUE' =>TRUE, 88 'uppercase FALSE' =>FALSE, 89 90 // empty data 91 'empty string DQ' => "", 92 'empty string SQ' => '', 93 94 // string data 95 'string DQ' => "string", 96 'string SQ' => 'string', 97 'mixed case string' => "sTrInG", 98 'heredoc' => $heredoc, 99 100 // object data 101 'instance of classWithToString' => new classWithToString(), 102 'instance of classWithoutToString' => new classWithoutToString(), 103 104 // undefined data 105 'undefined var' => @$undefined_var, 106 107 // unset data 108 'unset var' => @$unset_var, 109 110 //non context resource 111 'file resource' => $fileRes, 112 113 //valid stream context 114 'stream context' => $strContext, 115); 116 117// loop through each element of the array for context 118 119foreach($inputs as $key =>$value) { 120 echo "\n--$key--\n"; 121 var_dump( file_put_contents($absFile, $data, null, $value) ); 122}; 123 124unlink($absFile); 125fclose($fileRes); 126 127?> 128===DONE=== 129--EXPECTF-- 130*** Testing file_put_contents() : usage variation *** 131 132--int 0-- 133Error: 2 - file_put_contents() expects parameter 4 to be resource, integer given, %s(%d) 134NULL 135 136--int 1-- 137Error: 2 - file_put_contents() expects parameter 4 to be resource, integer given, %s(%d) 138NULL 139 140--int 12345-- 141Error: 2 - file_put_contents() expects parameter 4 to be resource, integer given, %s(%d) 142NULL 143 144--int -12345-- 145Error: 2 - file_put_contents() expects parameter 4 to be resource, integer given, %s(%d) 146NULL 147 148--float 10.5-- 149Error: 2 - file_put_contents() expects parameter 4 to be resource, double given, %s(%d) 150NULL 151 152--float -10.5-- 153Error: 2 - file_put_contents() expects parameter 4 to be resource, double given, %s(%d) 154NULL 155 156--float 12.3456789000e10-- 157Error: 2 - file_put_contents() expects parameter 4 to be resource, double given, %s(%d) 158NULL 159 160--float -12.3456789000e10-- 161Error: 2 - file_put_contents() expects parameter 4 to be resource, double given, %s(%d) 162NULL 163 164--float .5-- 165Error: 2 - file_put_contents() expects parameter 4 to be resource, double given, %s(%d) 166NULL 167 168--empty array-- 169Error: 2 - file_put_contents() expects parameter 4 to be resource, array given, %s(%d) 170NULL 171 172--int indexed array-- 173Error: 2 - file_put_contents() expects parameter 4 to be resource, array given, %s(%d) 174NULL 175 176--associative array-- 177Error: 2 - file_put_contents() expects parameter 4 to be resource, array given, %s(%d) 178NULL 179 180--nested arrays-- 181Error: 2 - file_put_contents() expects parameter 4 to be resource, array given, %s(%d) 182NULL 183 184--uppercase NULL-- 185int(13) 186 187--lowercase null-- 188int(13) 189 190--lowercase true-- 191Error: 2 - file_put_contents() expects parameter 4 to be resource, boolean given, %s(%d) 192NULL 193 194--lowercase false-- 195Error: 2 - file_put_contents() expects parameter 4 to be resource, boolean given, %s(%d) 196NULL 197 198--uppercase TRUE-- 199Error: 2 - file_put_contents() expects parameter 4 to be resource, boolean given, %s(%d) 200NULL 201 202--uppercase FALSE-- 203Error: 2 - file_put_contents() expects parameter 4 to be resource, boolean given, %s(%d) 204NULL 205 206--empty string DQ-- 207Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 208NULL 209 210--empty string SQ-- 211Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 212NULL 213 214--string DQ-- 215Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 216NULL 217 218--string SQ-- 219Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 220NULL 221 222--mixed case string-- 223Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 224NULL 225 226--heredoc-- 227Error: 2 - file_put_contents() expects parameter 4 to be resource, string given, %s(%d) 228NULL 229 230--instance of classWithToString-- 231Error: 2 - file_put_contents() expects parameter 4 to be resource, object given, %s(%d) 232NULL 233 234--instance of classWithoutToString-- 235Error: 2 - file_put_contents() expects parameter 4 to be resource, object given, %s(%d) 236NULL 237 238--undefined var-- 239int(13) 240 241--unset var-- 242int(13) 243 244--file resource-- 245Error: 2 - file_put_contents(): supplied resource is not a valid Stream-Context resource, %s(%d) 246int(13) 247 248--stream context-- 249int(13) 250===DONE===