Return to fwrite_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fwrite() function : usage variations - r+, r+b & r+t modes 3: --SKIPIF-- 4: <?php 5: if( substr(PHP_OS, 0, 3) == 'WIN' ) { 6: die('skip...Not valid for Windows'); 7: } 8: ?> 9: --FILE-- 10: <?php 11: /* 12: Prototype: int fwrite ( resource $handle,string string, [, int $length] ); 13: Description: fwrite() writes the contents of string to the file stream pointed to by handle. 14: If the length arquement is given,writing will stop after length bytes have been 15: written or the end of string reached, whichever comes first. 16: fwrite() returns the number of bytes written or FALSE on error 17: */ 18: 19: 20: echo "*** Testing fwrite() various operations ***\n"; 21: 22: // include the file.inc for Function: function delete_file($filename) 23: include ("file.inc"); 24: 25: /* 26: Test fwrite with file opened in mode : r+,r+b,r+t 27: File having content of type numeric, text,text_with_new_line & alphanumeric 28: */ 29: 30: $file_modes = array("r+", "r+b", "r+t"); 31: $file_content_types = array("numeric","text","text_with_new_line","alphanumeric"); 32: 33: 34: foreach($file_content_types as $file_content_type) { 35: echo "\n-- Testing fwrite() with file having content of type ". $file_content_type ." --\n"; 36: 37: /* open the file using $files_modes and perform fwrite() on it */ 38: foreach($file_modes as $file_mode) { 39: echo "-- Opening file in $file_mode --\n"; 40: 41: // create temp file and fill the data of type $file_content_type 42: $filename = dirname(__FILE__)."/fwrite_variation2.tmp"; // this is name of the file 43: create_files ( dirname(__FILE__), 1, $file_content_type, 0755, 1, "w", "fwrite_variation", 2); 44: 45: $file_handle = fopen($filename, $file_mode); 46: if(!$file_handle) { 47: echo "Error: failed to fopen() file: $filename!"; 48: exit(); 49: } 50: 51: $data_to_be_written=""; 52: fill_buffer($data_to_be_written,$file_content_type,1024); //get the data of size 1024 53: 54: /* Write the data into the file, verify it by checking the file pointer position, eof position, 55: filesize & by displaying the content */ 56: 57: /*overwrite first 400 bytes in the file*/ 58: var_dump( ftell($file_handle) ); // expected : 0 59: var_dump( fwrite($file_handle, $data_to_be_written, 400)); 60: var_dump( ftell($file_handle) ); // expected: 400 61: var_dump( feof($file_handle) ); //Expecting bool(false) 62: 63: /*overwrite data in middle of the file*/ 64: fseek($file_handle, SEEK_SET, 1024/2 ); 65: var_dump( ftell($file_handle)); // expected: 1024/2 66: var_dump( fwrite($file_handle, $data_to_be_written, 200) ); 67: var_dump( ftell($file_handle) ); 68: var_dump( feof($file_handle) ); //Expecting bool(false) 69: 70: /* write at the end of the file */ 71: fseek($file_handle, SEEK_END, 0); 72: var_dump( ftell($file_handle) ); // expected: 1024 73: var_dump( feof($file_handle) ); 74: var_dump( fwrite($file_handle, $data_to_be_written, 200) ); 75: var_dump( ftell($file_handle) ); 76: var_dump( feof($file_handle) ); //Expecting bool(false) 77: 78: /* display the file content, check the file size */ 79: var_dump( fclose($file_handle) ); 80: clearstatcache();//clears file status cache 81: var_dump( filesize($filename) ); 82: var_dump(md5(file_get_contents($filename))); 83: delete_file($filename); // delete file with name fwrite_variation2.tmp 84: } // end of inner foreach loop 85: } // end of outer foreach loop 86: 87: echo "Done\n"; 88: ?> 89: --EXPECTF-- 90: *** Testing fwrite() various operations *** 91: 92: -- Testing fwrite() with file having content of type numeric -- 93: -- Opening file in r+ -- 94: int(0) 95: int(400) 96: int(400) 97: bool(false) 98: int(400) 99: int(200) 100: int(600) 101: bool(false) 102: int(2) 103: bool(false) 104: int(200) 105: int(202) 106: bool(false) 107: bool(true) 108: int(1024) 109: string(32) "950b7457d1deb6332f2fc5d42f3129d6" 110: -- Opening file in r+b -- 111: int(0) 112: int(400) 113: int(400) 114: bool(false) 115: int(400) 116: int(200) 117: int(600) 118: bool(false) 119: int(2) 120: bool(false) 121: int(200) 122: int(202) 123: bool(false) 124: bool(true) 125: int(1024) 126: string(32) "950b7457d1deb6332f2fc5d42f3129d6" 127: -- Opening file in r+t -- 128: int(0) 129: int(400) 130: int(400) 131: bool(false) 132: int(400) 133: int(200) 134: int(600) 135: bool(false) 136: int(2) 137: bool(false) 138: int(200) 139: int(202) 140: bool(false) 141: bool(true) 142: int(1024) 143: string(32) "950b7457d1deb6332f2fc5d42f3129d6" 144: 145: -- Testing fwrite() with file having content of type text -- 146: -- Opening file in r+ -- 147: int(0) 148: int(400) 149: int(400) 150: bool(false) 151: int(400) 152: int(200) 153: int(600) 154: bool(false) 155: int(2) 156: bool(false) 157: int(200) 158: int(202) 159: bool(false) 160: bool(true) 161: int(1024) 162: string(32) "3bdaf80dae28bc24bb304daa5ffee16c" 163: -- Opening file in r+b -- 164: int(0) 165: int(400) 166: int(400) 167: bool(false) 168: int(400) 169: int(200) 170: int(600) 171: bool(false) 172: int(2) 173: bool(false) 174: int(200) 175: int(202) 176: bool(false) 177: bool(true) 178: int(1024) 179: string(32) "3bdaf80dae28bc24bb304daa5ffee16c" 180: -- Opening file in r+t -- 181: int(0) 182: int(400) 183: int(400) 184: bool(false) 185: int(400) 186: int(200) 187: int(600) 188: bool(false) 189: int(2) 190: bool(false) 191: int(200) 192: int(202) 193: bool(false) 194: bool(true) 195: int(1024) 196: string(32) "3bdaf80dae28bc24bb304daa5ffee16c" 197: 198: -- Testing fwrite() with file having content of type text_with_new_line -- 199: -- Opening file in r+ -- 200: int(0) 201: int(400) 202: int(400) 203: bool(false) 204: int(400) 205: int(200) 206: int(600) 207: bool(false) 208: int(2) 209: bool(false) 210: int(200) 211: int(202) 212: bool(false) 213: bool(true) 214: int(1024) 215: string(32) "b188d7c8aa229cbef067e5970f2daba9" 216: -- Opening file in r+b -- 217: int(0) 218: int(400) 219: int(400) 220: bool(false) 221: int(400) 222: int(200) 223: int(600) 224: bool(false) 225: int(2) 226: bool(false) 227: int(200) 228: int(202) 229: bool(false) 230: bool(true) 231: int(1024) 232: string(32) "b188d7c8aa229cbef067e5970f2daba9" 233: -- Opening file in r+t -- 234: int(0) 235: int(400) 236: int(400) 237: bool(false) 238: int(400) 239: int(200) 240: int(600) 241: bool(false) 242: int(2) 243: bool(false) 244: int(200) 245: int(202) 246: bool(false) 247: bool(true) 248: int(1024) 249: string(32) "b188d7c8aa229cbef067e5970f2daba9" 250: 251: -- Testing fwrite() with file having content of type alphanumeric -- 252: -- Opening file in r+ -- 253: int(0) 254: int(400) 255: int(400) 256: bool(false) 257: int(400) 258: int(200) 259: int(600) 260: bool(false) 261: int(2) 262: bool(false) 263: int(200) 264: int(202) 265: bool(false) 266: bool(true) 267: int(1024) 268: string(32) "5d4ec23a3d9dd447e2f702d9e0e114d9" 269: -- Opening file in r+b -- 270: int(0) 271: int(400) 272: int(400) 273: bool(false) 274: int(400) 275: int(200) 276: int(600) 277: bool(false) 278: int(2) 279: bool(false) 280: int(200) 281: int(202) 282: bool(false) 283: bool(true) 284: int(1024) 285: string(32) "5d4ec23a3d9dd447e2f702d9e0e114d9" 286: -- Opening file in r+t -- 287: int(0) 288: int(400) 289: int(400) 290: bool(false) 291: int(400) 292: int(200) 293: int(600) 294: bool(false) 295: int(2) 296: bool(false) 297: int(200) 298: int(202) 299: bool(false) 300: bool(true) 301: int(1024) 302: string(32) "5d4ec23a3d9dd447e2f702d9e0e114d9" 303: Done