Return to file_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test file() function : second parameter variation 3: --FILE-- 4: <?php 5: /* Prototype : array file(string filename [, int flags[, resource context]]) 6: * Description: Read entire file into an array 7: * Source code: ext/standard/file.c 8: * Alias to functions: 9: */ 10: 11: echo "*** Testing file() : usage variation ***\n"; 12: 13: // Define error handler 14: function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 15: if (error_reporting() != 0) { 16: // report non-silenced errors 17: echo "Error: $err_no - $err_msg, $filename($linenum)\n"; 18: } 19: } 20: set_error_handler('test_error_handler'); 21: 22: // Initialise function arguments not being substituted 23: $filename = __FILE__ . ".tmp"; 24: $fd = fopen($filename, "w+"); 25: fwrite($fd, "Line 1\nLine 2\nLine 3"); 26: fclose($fd); 27: 28: $context = stream_context_create(); 29: 30: 31: //get an unset variable 32: $unset_var = 10; 33: unset ($unset_var); 34: 35: // define some classes 36: class classWithToString 37: { 38: public function __toString() { 39: return "Class A object"; 40: } 41: } 42: 43: class classWithoutToString 44: { 45: } 46: 47: // heredoc string 48: $heredoc = <<<EOT 49: hello world 50: EOT; 51: 52: // add arrays 53: $index_array = array (1, 2, 3); 54: $assoc_array = array ('one' => 1, 'two' => 2); 55: 56: //array of values to iterate over 57: $inputs = array( 58: 59: // float data 60: 'float 10.5' => 10.5, 61: 'float -10.5' => -10.5, 62: 'float 12.3456789000e10' => 12.3456789000e10, 63: 'float -12.3456789000e10' => -12.3456789000e10, 64: 'float .5' => .5, 65: 66: // array data 67: 'empty array' => array(), 68: 'int indexed array' => $index_array, 69: 'associative array' => $assoc_array, 70: 'nested arrays' => array('foo', $index_array, $assoc_array), 71: 72: // null data 73: 'uppercase NULL' => NULL, 74: 'lowercase null' => null, 75: 76: // boolean data 77: 'lowercase true' => true, 78: 'lowercase false' =>false, 79: 'uppercase TRUE' =>TRUE, 80: 'uppercase FALSE' =>FALSE, 81: 82: // empty data 83: 'empty string DQ' => "", 84: 'empty string SQ' => '', 85: 86: // string data 87: 'string DQ' => "string", 88: 'string SQ' => 'string', 89: 'mixed case string' => "sTrInG", 90: 'heredoc' => $heredoc, 91: 92: // object data 93: 'instance of classWithToString' => new classWithToString(), 94: 'instance of classWithoutToString' => new classWithoutToString(), 95: 96: // undefined data 97: 'undefined var' => @$undefined_var, 98: 99: // unset data 100: 'unset var' => @$unset_var, 101: ); 102: 103: // loop through each element of the array for flags 104: 105: foreach($inputs as $key =>$value) { 106: echo "\n--$key--\n"; 107: var_dump( file($filename, $value, $context) ); 108: }; 109: 110: unlink(__FILE__ . ".tmp"); 111: 112: ?> 113: ===DONE=== 114: --EXPECTF-- 115: *** Testing file() : usage variation *** 116: 117: --float 10.5-- 118: array(3) { 119: [0]=> 120: string(6) "Line 1" 121: [1]=> 122: string(6) "Line 2" 123: [2]=> 124: string(6) "Line 3" 125: } 126: 127: --float -10.5-- 128: Error: 2 - file(): '-10' flag is not supported, %s(%d) 129: bool(false) 130: 131: --float 12.3456789000e10-- 132: Error: 2 - file(): '%i' flag is not supported, %s(%d) 133: bool(false) 134: 135: --float -12.3456789000e10-- 136: Error: 2 - file(): '%i' flag is not supported, %s(%d) 137: bool(false) 138: 139: --float .5-- 140: array(3) { 141: [0]=> 142: string(7) "Line 1 143: " 144: [1]=> 145: string(7) "Line 2 146: " 147: [2]=> 148: string(6) "Line 3" 149: } 150: 151: --empty array-- 152: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d) 153: NULL 154: 155: --int indexed array-- 156: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d) 157: NULL 158: 159: --associative array-- 160: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d) 161: NULL 162: 163: --nested arrays-- 164: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d) 165: NULL 166: 167: --uppercase NULL-- 168: array(3) { 169: [0]=> 170: string(7) "Line 1 171: " 172: [1]=> 173: string(7) "Line 2 174: " 175: [2]=> 176: string(6) "Line 3" 177: } 178: 179: --lowercase null-- 180: array(3) { 181: [0]=> 182: string(7) "Line 1 183: " 184: [1]=> 185: string(7) "Line 2 186: " 187: [2]=> 188: string(6) "Line 3" 189: } 190: 191: --lowercase true-- 192: array(3) { 193: [0]=> 194: string(7) "Line 1 195: " 196: [1]=> 197: string(7) "Line 2 198: " 199: [2]=> 200: string(6) "Line 3" 201: } 202: 203: --lowercase false-- 204: array(3) { 205: [0]=> 206: string(7) "Line 1 207: " 208: [1]=> 209: string(7) "Line 2 210: " 211: [2]=> 212: string(6) "Line 3" 213: } 214: 215: --uppercase TRUE-- 216: array(3) { 217: [0]=> 218: string(7) "Line 1 219: " 220: [1]=> 221: string(7) "Line 2 222: " 223: [2]=> 224: string(6) "Line 3" 225: } 226: 227: --uppercase FALSE-- 228: array(3) { 229: [0]=> 230: string(7) "Line 1 231: " 232: [1]=> 233: string(7) "Line 2 234: " 235: [2]=> 236: string(6) "Line 3" 237: } 238: 239: --empty string DQ-- 240: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 241: NULL 242: 243: --empty string SQ-- 244: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 245: NULL 246: 247: --string DQ-- 248: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 249: NULL 250: 251: --string SQ-- 252: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 253: NULL 254: 255: --mixed case string-- 256: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 257: NULL 258: 259: --heredoc-- 260: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d) 261: NULL 262: 263: --instance of classWithToString-- 264: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d) 265: NULL 266: 267: --instance of classWithoutToString-- 268: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d) 269: NULL 270: 271: --undefined var-- 272: array(3) { 273: [0]=> 274: string(7) "Line 1 275: " 276: [1]=> 277: string(7) "Line 2 278: " 279: [2]=> 280: string(6) "Line 3" 281: } 282: 283: --unset var-- 284: array(3) { 285: [0]=> 286: string(7) "Line 1 287: " 288: [1]=> 289: string(7) "Line 2 290: " 291: [2]=> 292: string(6) "Line 3" 293: } 294: ===DONE===