1--TEST-- 2fread & fwrite - Test reading and writing using a single resource 3--CREDITS-- 4Dave Kelsey <d_kelsey@uk.ibm.com> 5--FILE-- 6<?php 7 8/* 9 * proto int fwrite(resource fp, string str [, int length]) 10 * Function is implemented in ext/standard/file.c 11 */ 12 13 /* 14 Prototype: string fread ( resource $handle [, int $length] ); 15 Description: reads up to length bytes from the file pointer referenced by handle. 16 Reading stops when up to length bytes have been read, EOF (end of file) is 17 reached, (for network streams) when a packet becomes available, or (after 18 opening userspace stream) when 8192 bytes have been read whichever comes first. 19*/ 20 21 22$outputfile = __FILE__.".tmp"; 23 24echo "--- testing rw moving about the file ---\n"; 25$h = fopen($outputfile, 'wb+'); 26$out1 = "The 1st prrt"; 27$out2 = " part of the ttxt"; 28$out3 = "text"; 29fwrite($h, $out1); 30fseek($h, 0, SEEK_SET); 31echo "start:".fread($h, strlen($out1) - 5). "\n"; 32fwrite($h, $out2); 33echo "at end:".fread($h,100)."\n"; 34var_dump(feof($h)); 35fseek($h, -4, SEEK_CUR); 36fwrite($h, $out3); 37fseek($h, 0, SEEK_SET); 38echo "final:".fread($h, 100)."\n"; 39fclose($h); 40 41echo "--- testing eof ---\n"; 42$h = fopen($outputfile, 'ab+'); 43fread($h,1024); 44var_dump(feof($h)); 45fread($h,1); 46var_dump(feof($h)); 47$out = "extra"; 48fwrite($h, $out); 49var_dump(feof($h)); 50fread($h,1); 51var_dump(feof($h)); 52fseek($h, -strlen($out) + 1, SEEK_CUR); 53echo "last bytes: ".fread($h, strlen($out))."\n"; 54fclose($h); 55 56unlink($outputfile); 57 58echo "Done"; 59?> 60--EXPECT-- 61--- testing rw moving about the file --- 62start:The 1st 63at end: 64bool(true) 65final:The 1st part of the text 66--- testing eof --- 67bool(true) 68bool(true) 69bool(true) 70bool(true) 71last bytes: xtra 72Done