Return to fgetss_variation5-win32.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fgetss() function : usage variations - read/write modes, file pointer at EOF 3: --SKIPIF-- 4: <?php 5: if (substr(PHP_OS, 0, 3) != 'WIN') { 6: die('skip.. only valid for 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: 23: echo "*** Testing fgetss() : usage variations ***\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 29: is a heredoc string. <pg>ksklnm@@$$&$&^%&^%&^%&</pg> 30: <html> html </html> <?php echo "php"; ?> 31: this line is without any html and php tags 32: this is a line with more than eighty character,want to check line splitting correctly after 80 characters 33: this text contains some html tags <body> body </body> <br> br </br> 34: this is the line with \n character. 35: EOT; 36: if(substr(PHP_OS, 0, 3) == "WIN") { 37: $string_with_tags = str_replace("\r",'', $string_with_tags); 38: } 39: 40: $filename = dirname(__FILE__)."/fgetss_variation5.tmp"; 41: 42: /* try reading the file opened in different modes of reading */ 43: $file_modes = array("w+","w+b", "w+t","a+", "a+b", "a+t","x+","x+b","x+t"); 44: 45: for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) { 46: echo "\n-- Testing fgetss() with file opened using $file_modes[$mode_counter] mode --\n"; 47: 48: /* create an empty file and write the strings with tags */ 49: $file_handle = fopen($filename, $file_modes[$mode_counter]); 50: fwrite($file_handle,$string_with_tags); //writing data to the file 51: if(!$file_handle) { 52: echo "Error: failed to open file $filename!\n"; 53: exit(); 54: } 55: // rewind the file pointer to begining of the file 56: var_dump( filesize($filename) ); 57: var_dump( rewind($file_handle) ); 58: var_dump( ftell($file_handle) ); 59: var_dump( feof($file_handle) ); 60: 61: echo "-- Reading when file pointer points to EOF --\n"; 62: var_dump( fseek($file_handle,0,SEEK_END) ); // now file pointer at end 63: var_dump( ftell($file_handle) ); //ensure file pointer at end 64: var_dump( fgetss($file_handle) ); // try to read 65: var_dump( ftell($file_handle) ); // find out file position 66: var_dump( feof($file_handle) ); // ensure that file pointer is at eof 67: 68: // now file is at the end try reading with length and allowable tags,expecting false 69: var_dump( fgetss($file_handle, 80, "<test>, <html>, <?>") ); 70: var_dump( ftell($file_handle) ); // find out file position 71: var_dump( feof($file_handle) ); // ensure that file pointer is at eof 72: 73: 74: // close the file 75: fclose($file_handle); 76: 77: // delete the file 78: unlink($filename); 79: } // end of for - mode_counter 80: 81: echo "Done\n"; 82: ?> 83: --EXPECT-- 84: *** Testing fgetss() : usage variations *** 85: 86: -- Testing fgetss() with file opened using w+ mode -- 87: int(445) 88: bool(true) 89: int(0) 90: bool(false) 91: -- Reading when file pointer points to EOF -- 92: int(0) 93: int(445) 94: bool(false) 95: int(445) 96: bool(true) 97: bool(false) 98: int(445) 99: bool(true) 100: 101: -- Testing fgetss() with file opened using w+b mode -- 102: int(445) 103: bool(true) 104: int(0) 105: bool(false) 106: -- Reading when file pointer points to EOF -- 107: int(0) 108: int(445) 109: bool(false) 110: int(445) 111: bool(true) 112: bool(false) 113: int(445) 114: bool(true) 115: 116: -- Testing fgetss() with file opened using w+t mode -- 117: int(453) 118: bool(true) 119: int(0) 120: bool(false) 121: -- Reading when file pointer points to EOF -- 122: int(0) 123: int(453) 124: bool(false) 125: int(453) 126: bool(true) 127: bool(false) 128: int(453) 129: bool(true) 130: 131: -- Testing fgetss() with file opened using a+ mode -- 132: int(445) 133: bool(true) 134: int(0) 135: bool(false) 136: -- Reading when file pointer points to EOF -- 137: int(0) 138: int(445) 139: bool(false) 140: int(445) 141: bool(true) 142: bool(false) 143: int(445) 144: bool(true) 145: 146: -- Testing fgetss() with file opened using a+b mode -- 147: int(445) 148: bool(true) 149: int(0) 150: bool(false) 151: -- Reading when file pointer points to EOF -- 152: int(0) 153: int(445) 154: bool(false) 155: int(445) 156: bool(true) 157: bool(false) 158: int(445) 159: bool(true) 160: 161: -- Testing fgetss() with file opened using a+t mode -- 162: int(453) 163: bool(true) 164: int(0) 165: bool(false) 166: -- Reading when file pointer points to EOF -- 167: int(0) 168: int(453) 169: bool(false) 170: int(453) 171: bool(true) 172: bool(false) 173: int(453) 174: bool(true) 175: 176: -- Testing fgetss() with file opened using x+ mode -- 177: int(445) 178: bool(true) 179: int(0) 180: bool(false) 181: -- Reading when file pointer points to EOF -- 182: int(0) 183: int(445) 184: bool(false) 185: int(445) 186: bool(true) 187: bool(false) 188: int(445) 189: bool(true) 190: 191: -- Testing fgetss() with file opened using x+b mode -- 192: int(445) 193: bool(true) 194: int(0) 195: bool(false) 196: -- Reading when file pointer points to EOF -- 197: int(0) 198: int(445) 199: bool(false) 200: int(445) 201: bool(true) 202: bool(false) 203: int(445) 204: bool(true) 205: 206: -- Testing fgetss() with file opened using x+t mode -- 207: int(453) 208: bool(true) 209: int(0) 210: bool(false) 211: -- Reading when file pointer points to EOF -- 212: int(0) 213: int(453) 214: bool(false) 215: int(453) 216: bool(true) 217: bool(false) 218: int(453) 219: bool(true) 220: Done