1--TEST-- 2Test fseek(), ftell() & rewind() functions : basic functionality - all w and x modes 3--SKIPIF-- 4<?php 5if( substr(PHP_OS, 0, 3) != "WIN" ) 6 die("skip.. only valid for Windows"); 7?> 8--FILE-- 9<?php 10// include the file.inc for common functions for test 11include ("file.inc"); 12 13/* Testing fseek(),ftell(),rewind() functions on all write and create with write modes */ 14 15echo "*** Testing fseek(), ftell(), rewind() : basic operations ***\n"; 16$file_modes = array( "w","wb","wt","w+","w+b","w+t", 17 "x","xb","xt","x+","x+b","x+t"); 18 19$file_content_types = array("text_with_new_line","alphanumeric"); 20 21$whence_set = array(SEEK_SET,SEEK_CUR,SEEK_END); 22$whence_string = array("SEEK_SET", "SEEK_CUR", "SEEK_END"); 23 24$filename = __DIR__."/fseek_ftell_rewind_basic2.tmp"; // this is name of the file created by create_files() 25 26foreach($file_content_types as $file_content_type){ 27 echo "\n-- File having data of type ". $file_content_type ." --\n"; 28 29 /* open the file using $files_modes and perform fseek(),ftell() and rewind() on it */ 30 foreach($file_modes as $file_mode) { 31 echo "-- File opened in mode ".$file_mode." --\n"; 32 33 $file_handle = fopen($filename, $file_mode); 34 if (!$file_handle) { 35 echo "Error: failed to fopen() file: $filename!"; 36 exit(); 37 } 38 $data_to_be_written=""; 39 fill_buffer($data_to_be_written, $file_content_type, 512); //get the data of size 512 40 $data_to_be_written = $data_to_be_written; 41 fwrite($file_handle,$data_to_be_written); 42 43 // set file pointer to 0 44 var_dump( rewind($file_handle) ); // set to beginning of file 45 var_dump( ftell($file_handle) ); 46 47 foreach($whence_set as $whence){ 48 echo "-- Testing fseek() with whence = $whence_string[$whence] --\n"; 49 var_dump( fseek($file_handle, 10, $whence) ); //expecting int(0) 50 var_dump( ftell($file_handle) ); // confirm the file pointer position 51 var_dump( feof($file_handle) ); //ensure that file pointer is not at end 52 } //end of whence loop 53 54 //close the file and check the size 55 fclose($file_handle); 56 var_dump( filesize($filename) ); 57 58 delete_file($filename); // delete file with name 59 } //end of file_mode loop 60} //end of File content type loop 61echo "Done\n"; 62?> 63--EXPECT-- 64*** Testing fseek(), ftell(), rewind() : basic operations *** 65 66-- File having data of type text_with_new_line -- 67-- File opened in mode w -- 68bool(true) 69int(0) 70-- Testing fseek() with whence = SEEK_SET -- 71int(0) 72int(10) 73bool(false) 74-- Testing fseek() with whence = SEEK_CUR -- 75int(0) 76int(20) 77bool(false) 78-- Testing fseek() with whence = SEEK_END -- 79int(0) 80int(522) 81bool(false) 82int(512) 83-- File opened in mode wb -- 84bool(true) 85int(0) 86-- Testing fseek() with whence = SEEK_SET -- 87int(0) 88int(10) 89bool(false) 90-- Testing fseek() with whence = SEEK_CUR -- 91int(0) 92int(20) 93bool(false) 94-- Testing fseek() with whence = SEEK_END -- 95int(0) 96int(522) 97bool(false) 98int(512) 99-- File opened in mode wt -- 100bool(true) 101int(0) 102-- Testing fseek() with whence = SEEK_SET -- 103int(0) 104int(10) 105bool(false) 106-- Testing fseek() with whence = SEEK_CUR -- 107int(0) 108int(20) 109bool(false) 110-- Testing fseek() with whence = SEEK_END -- 111int(0) 112int(579) 113bool(false) 114int(569) 115-- File opened in mode w+ -- 116bool(true) 117int(0) 118-- Testing fseek() with whence = SEEK_SET -- 119int(0) 120int(10) 121bool(false) 122-- Testing fseek() with whence = SEEK_CUR -- 123int(0) 124int(20) 125bool(false) 126-- Testing fseek() with whence = SEEK_END -- 127int(0) 128int(522) 129bool(false) 130int(512) 131-- File opened in mode w+b -- 132bool(true) 133int(0) 134-- Testing fseek() with whence = SEEK_SET -- 135int(0) 136int(10) 137bool(false) 138-- Testing fseek() with whence = SEEK_CUR -- 139int(0) 140int(20) 141bool(false) 142-- Testing fseek() with whence = SEEK_END -- 143int(0) 144int(522) 145bool(false) 146int(512) 147-- File opened in mode w+t -- 148bool(true) 149int(0) 150-- Testing fseek() with whence = SEEK_SET -- 151int(0) 152int(10) 153bool(false) 154-- Testing fseek() with whence = SEEK_CUR -- 155int(0) 156int(20) 157bool(false) 158-- Testing fseek() with whence = SEEK_END -- 159int(0) 160int(579) 161bool(false) 162int(569) 163-- File opened in mode x -- 164bool(true) 165int(0) 166-- Testing fseek() with whence = SEEK_SET -- 167int(0) 168int(10) 169bool(false) 170-- Testing fseek() with whence = SEEK_CUR -- 171int(0) 172int(20) 173bool(false) 174-- Testing fseek() with whence = SEEK_END -- 175int(0) 176int(522) 177bool(false) 178int(512) 179-- File opened in mode xb -- 180bool(true) 181int(0) 182-- Testing fseek() with whence = SEEK_SET -- 183int(0) 184int(10) 185bool(false) 186-- Testing fseek() with whence = SEEK_CUR -- 187int(0) 188int(20) 189bool(false) 190-- Testing fseek() with whence = SEEK_END -- 191int(0) 192int(522) 193bool(false) 194int(512) 195-- File opened in mode xt -- 196bool(true) 197int(0) 198-- Testing fseek() with whence = SEEK_SET -- 199int(0) 200int(10) 201bool(false) 202-- Testing fseek() with whence = SEEK_CUR -- 203int(0) 204int(20) 205bool(false) 206-- Testing fseek() with whence = SEEK_END -- 207int(0) 208int(579) 209bool(false) 210int(569) 211-- File opened in mode x+ -- 212bool(true) 213int(0) 214-- Testing fseek() with whence = SEEK_SET -- 215int(0) 216int(10) 217bool(false) 218-- Testing fseek() with whence = SEEK_CUR -- 219int(0) 220int(20) 221bool(false) 222-- Testing fseek() with whence = SEEK_END -- 223int(0) 224int(522) 225bool(false) 226int(512) 227-- File opened in mode x+b -- 228bool(true) 229int(0) 230-- Testing fseek() with whence = SEEK_SET -- 231int(0) 232int(10) 233bool(false) 234-- Testing fseek() with whence = SEEK_CUR -- 235int(0) 236int(20) 237bool(false) 238-- Testing fseek() with whence = SEEK_END -- 239int(0) 240int(522) 241bool(false) 242int(512) 243-- File opened in mode x+t -- 244bool(true) 245int(0) 246-- Testing fseek() with whence = SEEK_SET -- 247int(0) 248int(10) 249bool(false) 250-- Testing fseek() with whence = SEEK_CUR -- 251int(0) 252int(20) 253bool(false) 254-- Testing fseek() with whence = SEEK_END -- 255int(0) 256int(579) 257bool(false) 258int(569) 259 260-- File having data of type alphanumeric -- 261-- File opened in mode w -- 262bool(true) 263int(0) 264-- Testing fseek() with whence = SEEK_SET -- 265int(0) 266int(10) 267bool(false) 268-- Testing fseek() with whence = SEEK_CUR -- 269int(0) 270int(20) 271bool(false) 272-- Testing fseek() with whence = SEEK_END -- 273int(0) 274int(522) 275bool(false) 276int(512) 277-- File opened in mode wb -- 278bool(true) 279int(0) 280-- Testing fseek() with whence = SEEK_SET -- 281int(0) 282int(10) 283bool(false) 284-- Testing fseek() with whence = SEEK_CUR -- 285int(0) 286int(20) 287bool(false) 288-- Testing fseek() with whence = SEEK_END -- 289int(0) 290int(522) 291bool(false) 292int(512) 293-- File opened in mode wt -- 294bool(true) 295int(0) 296-- Testing fseek() with whence = SEEK_SET -- 297int(0) 298int(10) 299bool(false) 300-- Testing fseek() with whence = SEEK_CUR -- 301int(0) 302int(20) 303bool(false) 304-- Testing fseek() with whence = SEEK_END -- 305int(0) 306int(522) 307bool(false) 308int(512) 309-- File opened in mode w+ -- 310bool(true) 311int(0) 312-- Testing fseek() with whence = SEEK_SET -- 313int(0) 314int(10) 315bool(false) 316-- Testing fseek() with whence = SEEK_CUR -- 317int(0) 318int(20) 319bool(false) 320-- Testing fseek() with whence = SEEK_END -- 321int(0) 322int(522) 323bool(false) 324int(512) 325-- File opened in mode w+b -- 326bool(true) 327int(0) 328-- Testing fseek() with whence = SEEK_SET -- 329int(0) 330int(10) 331bool(false) 332-- Testing fseek() with whence = SEEK_CUR -- 333int(0) 334int(20) 335bool(false) 336-- Testing fseek() with whence = SEEK_END -- 337int(0) 338int(522) 339bool(false) 340int(512) 341-- File opened in mode w+t -- 342bool(true) 343int(0) 344-- Testing fseek() with whence = SEEK_SET -- 345int(0) 346int(10) 347bool(false) 348-- Testing fseek() with whence = SEEK_CUR -- 349int(0) 350int(20) 351bool(false) 352-- Testing fseek() with whence = SEEK_END -- 353int(0) 354int(522) 355bool(false) 356int(512) 357-- File opened in mode x -- 358bool(true) 359int(0) 360-- Testing fseek() with whence = SEEK_SET -- 361int(0) 362int(10) 363bool(false) 364-- Testing fseek() with whence = SEEK_CUR -- 365int(0) 366int(20) 367bool(false) 368-- Testing fseek() with whence = SEEK_END -- 369int(0) 370int(522) 371bool(false) 372int(512) 373-- File opened in mode xb -- 374bool(true) 375int(0) 376-- Testing fseek() with whence = SEEK_SET -- 377int(0) 378int(10) 379bool(false) 380-- Testing fseek() with whence = SEEK_CUR -- 381int(0) 382int(20) 383bool(false) 384-- Testing fseek() with whence = SEEK_END -- 385int(0) 386int(522) 387bool(false) 388int(512) 389-- File opened in mode xt -- 390bool(true) 391int(0) 392-- Testing fseek() with whence = SEEK_SET -- 393int(0) 394int(10) 395bool(false) 396-- Testing fseek() with whence = SEEK_CUR -- 397int(0) 398int(20) 399bool(false) 400-- Testing fseek() with whence = SEEK_END -- 401int(0) 402int(522) 403bool(false) 404int(512) 405-- File opened in mode x+ -- 406bool(true) 407int(0) 408-- Testing fseek() with whence = SEEK_SET -- 409int(0) 410int(10) 411bool(false) 412-- Testing fseek() with whence = SEEK_CUR -- 413int(0) 414int(20) 415bool(false) 416-- Testing fseek() with whence = SEEK_END -- 417int(0) 418int(522) 419bool(false) 420int(512) 421-- File opened in mode x+b -- 422bool(true) 423int(0) 424-- Testing fseek() with whence = SEEK_SET -- 425int(0) 426int(10) 427bool(false) 428-- Testing fseek() with whence = SEEK_CUR -- 429int(0) 430int(20) 431bool(false) 432-- Testing fseek() with whence = SEEK_END -- 433int(0) 434int(522) 435bool(false) 436int(512) 437-- File opened in mode x+t -- 438bool(true) 439int(0) 440-- Testing fseek() with whence = SEEK_SET -- 441int(0) 442int(10) 443bool(false) 444-- Testing fseek() with whence = SEEK_CUR -- 445int(0) 446int(20) 447bool(false) 448-- Testing fseek() with whence = SEEK_END -- 449int(0) 450int(522) 451bool(false) 452int(512) 453Done 454