1--TEST-- 2Test fgetss() function : Basic functionality - read/write modes 3--SKIPIF-- 4<?php 5if (substr(PHP_OS, 0, 3) != 'WIN') { 6 die('skip.. only on Windows'); 7} 8?> 9--FILE-- 10<?php 11/* 12 Prototype: string fgetss ( resource $handle [, int $length [, string $allowable_tags]] ); 13 Description: Gets line from file pointer and strip HTML tags 14*/ 15 16/* try fgetss on files which are opened in read/write modes 17 w+, w+b, w+t, 18 a+, a+b, a+t, 19 x+, x+b, x+t 20*/ 21 22 23echo "*** Testing fgetss() : basic operations ***\n"; 24 25/* string with html and php tags */ 26$string_with_tags = <<<EOT 27<test>Testing fgetss() functions</test> 28<?php echo "this string is within php tag"; ?> {;}<{> this 29is a heredoc string. <pg>ksklnm@@$$&$&^%&^%&^%&</pg> 30<html> html </html> <?php echo "php"; ?> 31EOT; 32if(substr(PHP_OS, 0, 3) == "WIN") { 33 $string_with_tags = str_replace("\r",'', $string_with_tags); 34} 35$filename = dirname(__FILE__)."/fgetss_basic2私はガラスを食べられます.tmp"; 36 37/* try reading the file opened in different modes of reading */ 38$file_modes = array("w+","w+b", "w+t","a+", "a+b", "a+t","x+","x+b","x+t"); 39 40for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) { 41 echo "\n-- Testing fgetss() with file opened using $file_modes[$mode_counter] mode --\n"; 42 43 /* create an empty file and write the strings with tags */ 44 $file_handle = fopen($filename, $file_modes[$mode_counter]); 45 fwrite($file_handle,$string_with_tags); //writing data to the file 46 if(!$file_handle) { 47 echo "Error: failed to open file $filename!\n"; 48 exit(); 49 } 50 51 // rewind the file pointer to beginning of the file 52 var_dump( filesize($filename) ); 53 var_dump( rewind($file_handle) ); 54 var_dump( ftell($file_handle) ); 55 var_dump( feof($file_handle) ); 56 57 /* read entire file and strip tags */ 58 echo "-- fgetss() with default length, file pointer at 0 --\n"; 59 var_dump( fgetss($file_handle) ); // no length and allowable tags provided, reads entire file 60 var_dump( ftell($file_handle) ); 61 var_dump( feof($file_handle) ); 62 63 rewind($file_handle); 64 /* read entire file and strip tags tags */ 65 echo "-- fgets() with length = 30, file pointer at 0 --\n"; 66 var_dump( fgetss($file_handle ,30) ); // length parameter given,not reading entire file 67 var_dump( ftell($file_handle) ); // checking file pointer position initially 68 var_dump( feof($file_handle) ); // confirm file pointer is not at eof 69 70 // close the file 71 fclose($file_handle); 72 73 // delete the file 74 unlink($filename); 75} // end of for - mode_counter 76 77echo "Done\n"; 78?> 79--EXPECTF-- 80*** Testing fgetss() : basic operations *** 81 82-- Testing fgetss() with file opened using w+ mode -- 83int(192) 84bool(true) 85int(0) 86bool(false) 87-- fgetss() with default length, file pointer at 0 -- 88string(27) "Testing fgetss() functions 89" 90int(40) 91bool(false) 92-- fgets() with length = 30, file pointer at 0 -- 93string(23) "Testing fgetss() functi" 94int(29) 95bool(false) 96 97-- Testing fgetss() with file opened using w+b mode -- 98int(192) 99bool(true) 100int(0) 101bool(false) 102-- fgetss() with default length, file pointer at 0 -- 103string(27) "Testing fgetss() functions 104" 105int(40) 106bool(false) 107-- fgets() with length = 30, file pointer at 0 -- 108string(23) "Testing fgetss() functi" 109int(29) 110bool(false) 111 112-- Testing fgetss() with file opened using w+t mode -- 113int(195) 114bool(true) 115int(0) 116bool(false) 117-- fgetss() with default length, file pointer at 0 -- 118string(27) "Testing fgetss() functions 119" 120int(40) 121bool(false) 122-- fgets() with length = 30, file pointer at 0 -- 123string(23) "Testing fgetss() functi" 124int(29) 125bool(false) 126 127-- Testing fgetss() with file opened using a+ mode -- 128int(192) 129bool(true) 130int(0) 131bool(false) 132-- fgetss() with default length, file pointer at 0 -- 133string(27) "Testing fgetss() functions 134" 135int(40) 136bool(false) 137-- fgets() with length = 30, file pointer at 0 -- 138string(23) "Testing fgetss() functi" 139int(29) 140bool(false) 141 142-- Testing fgetss() with file opened using a+b mode -- 143int(192) 144bool(true) 145int(0) 146bool(false) 147-- fgetss() with default length, file pointer at 0 -- 148string(27) "Testing fgetss() functions 149" 150int(40) 151bool(false) 152-- fgets() with length = 30, file pointer at 0 -- 153string(23) "Testing fgetss() functi" 154int(29) 155bool(false) 156 157-- Testing fgetss() with file opened using a+t mode -- 158int(195) 159bool(true) 160int(0) 161bool(false) 162-- fgetss() with default length, file pointer at 0 -- 163string(27) "Testing fgetss() functions 164" 165int(40) 166bool(false) 167-- fgets() with length = 30, file pointer at 0 -- 168string(23) "Testing fgetss() functi" 169int(29) 170bool(false) 171 172-- Testing fgetss() with file opened using x+ mode -- 173int(192) 174bool(true) 175int(0) 176bool(false) 177-- fgetss() with default length, file pointer at 0 -- 178string(27) "Testing fgetss() functions 179" 180int(40) 181bool(false) 182-- fgets() with length = 30, file pointer at 0 -- 183string(23) "Testing fgetss() functi" 184int(29) 185bool(false) 186 187-- Testing fgetss() with file opened using x+b mode -- 188int(192) 189bool(true) 190int(0) 191bool(false) 192-- fgetss() with default length, file pointer at 0 -- 193string(27) "Testing fgetss() functions 194" 195int(40) 196bool(false) 197-- fgets() with length = 30, file pointer at 0 -- 198string(23) "Testing fgetss() functi" 199int(29) 200bool(false) 201 202-- Testing fgetss() with file opened using x+t mode -- 203int(195) 204bool(true) 205int(0) 206bool(false) 207-- fgetss() with default length, file pointer at 0 -- 208string(27) "Testing fgetss() functions 209" 210int(40) 211bool(false) 212-- fgets() with length = 30, file pointer at 0 -- 213string(23) "Testing fgetss() functi" 214int(29) 215bool(false) 216Done 217