Return to fgetss_variation3.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 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: 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: reading line by line with allowable tags: <test>, <html>, <?> 21: */ 22: 23: 24: echo "*** Testing fgetss() : usage variations ***\n"; 25: 26: /* string with html and php tags */ 27: $string_with_tags = <<<EOT 28: <test>Testing fgetss() functions</test> 29: <?php echo "this string is within php tag"; ?> {;}<{> this 30: is a heredoc string. <pg>ksklnm@@$$&$&^%&^%&^%&</pg> 31: <html> html </html> <?php echo "php"; ?> 32: this line is without any html and php tags 33: this is a line with more than eighty character,want to check line splitting correctly after 80 characters 34: this text contains some html tags <body> body </body> <br> br </br> 35: this is the line with \n character. 36: EOT; 37: 38: $filename = dirname(__FILE__)."/fgetss_variation3.tmp"; 39: 40: /* try reading the file opened in different modes of reading */ 41: $file_modes = array("w+","w+b", "w+t","a+", "a+b", "a+t","x+","x+b","x+t"); 42: 43: for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) { 44: echo "\n-- Testing fgetss() with file opened using $file_modes[$mode_counter] mode --\n"; 45: 46: /* create an empty file and write the strings with tags */ 47: $file_handle = fopen($filename, $file_modes[$mode_counter]); 48: fwrite($file_handle,$string_with_tags); //writing data to the file 49: if(!$file_handle) { 50: echo "Error: failed to open file $filename!\n"; 51: exit(); 52: } 53: 54: // rewind the file pointer to begining of the file 55: rewind($file_handle); 56: var_dump( ftell($file_handle) ); 57: var_dump( filesize($filename) ); 58: var_dump( feof($file_handle) ); 59: 60: /* rewind the file and read the file line by line with allowable tags */ 61: echo "-- Reading line by line with allowable tags: <test>, <html>, <?> --\n"; 62: $line = 1; 63: while( !feof($file_handle) ) { 64: echo "-- Line $line --\n"; $line++; 65: var_dump( fgetss($file_handle, 80, "<test>, <html>, <?>") ); 66: var_dump( ftell($file_handle) ); // check the file pointer position 67: var_dump( feof($file_handle) ); // check if eof reached 68: } 69: 70: // close the file 71: fclose($file_handle); 72: 73: // delete the file 74: unlink($filename); 75: } // end of for - mode_counter 76: 77: echo "Done\n"; 78: ?> 79: --EXPECTF-- 80: *** Testing fgetss() : usage variations *** 81: 82: -- Testing fgetss() with file opened using w+ mode -- 83: int(0) 84: int(445) 85: bool(false) 86: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 87: -- Line 1 -- 88: string(40) "<test>Testing fgetss() functions</test> 89: " 90: int(40) 91: bool(false) 92: -- Line 2 -- 93: string(10) " {;} this 94: " 95: int(99) 96: bool(false) 97: -- Line 3 -- 98: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 99: " 100: int(152) 101: bool(false) 102: -- Line 4 -- 103: string(21) "<html> html </html> 104: " 105: int(193) 106: bool(false) 107: -- Line 5 -- 108: string(43) "this line is without any html and php tags 109: " 110: int(236) 111: bool(false) 112: -- Line 6 -- 113: string(79) "this is a line with more than eighty character,want to check line splitting cor" 114: int(315) 115: bool(false) 116: -- Line 7 -- 117: string(27) "rectly after 80 characters 118: " 119: int(342) 120: bool(false) 121: -- Line 8 -- 122: string(46) "this text contains some html tags body br 123: " 124: int(410) 125: bool(false) 126: -- Line 9 -- 127: string(23) "this is the line with 128: " 129: int(433) 130: bool(false) 131: -- Line 10 -- 132: string(12) " character. " 133: int(445) 134: bool(true) 135: 136: -- Testing fgetss() with file opened using w+b mode -- 137: int(0) 138: int(445) 139: bool(false) 140: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 141: -- Line 1 -- 142: string(40) "<test>Testing fgetss() functions</test> 143: " 144: int(40) 145: bool(false) 146: -- Line 2 -- 147: string(10) " {;} this 148: " 149: int(99) 150: bool(false) 151: -- Line 3 -- 152: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 153: " 154: int(152) 155: bool(false) 156: -- Line 4 -- 157: string(21) "<html> html </html> 158: " 159: int(193) 160: bool(false) 161: -- Line 5 -- 162: string(43) "this line is without any html and php tags 163: " 164: int(236) 165: bool(false) 166: -- Line 6 -- 167: string(79) "this is a line with more than eighty character,want to check line splitting cor" 168: int(315) 169: bool(false) 170: -- Line 7 -- 171: string(27) "rectly after 80 characters 172: " 173: int(342) 174: bool(false) 175: -- Line 8 -- 176: string(46) "this text contains some html tags body br 177: " 178: int(410) 179: bool(false) 180: -- Line 9 -- 181: string(23) "this is the line with 182: " 183: int(433) 184: bool(false) 185: -- Line 10 -- 186: string(12) " character. " 187: int(445) 188: bool(true) 189: 190: -- Testing fgetss() with file opened using w+t mode -- 191: int(0) 192: int(445) 193: bool(false) 194: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 195: -- Line 1 -- 196: string(40) "<test>Testing fgetss() functions</test> 197: " 198: int(40) 199: bool(false) 200: -- Line 2 -- 201: string(10) " {;} this 202: " 203: int(99) 204: bool(false) 205: -- Line 3 -- 206: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 207: " 208: int(152) 209: bool(false) 210: -- Line 4 -- 211: string(21) "<html> html </html> 212: " 213: int(193) 214: bool(false) 215: -- Line 5 -- 216: string(43) "this line is without any html and php tags 217: " 218: int(236) 219: bool(false) 220: -- Line 6 -- 221: string(79) "this is a line with more than eighty character,want to check line splitting cor" 222: int(315) 223: bool(false) 224: -- Line 7 -- 225: string(27) "rectly after 80 characters 226: " 227: int(342) 228: bool(false) 229: -- Line 8 -- 230: string(46) "this text contains some html tags body br 231: " 232: int(410) 233: bool(false) 234: -- Line 9 -- 235: string(23) "this is the line with 236: " 237: int(433) 238: bool(false) 239: -- Line 10 -- 240: string(12) " character. " 241: int(445) 242: bool(true) 243: 244: -- Testing fgetss() with file opened using a+ mode -- 245: int(0) 246: int(445) 247: bool(false) 248: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 249: -- Line 1 -- 250: string(40) "<test>Testing fgetss() functions</test> 251: " 252: int(40) 253: bool(false) 254: -- Line 2 -- 255: string(10) " {;} this 256: " 257: int(99) 258: bool(false) 259: -- Line 3 -- 260: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 261: " 262: int(152) 263: bool(false) 264: -- Line 4 -- 265: string(21) "<html> html </html> 266: " 267: int(193) 268: bool(false) 269: -- Line 5 -- 270: string(43) "this line is without any html and php tags 271: " 272: int(236) 273: bool(false) 274: -- Line 6 -- 275: string(79) "this is a line with more than eighty character,want to check line splitting cor" 276: int(315) 277: bool(false) 278: -- Line 7 -- 279: string(27) "rectly after 80 characters 280: " 281: int(342) 282: bool(false) 283: -- Line 8 -- 284: string(46) "this text contains some html tags body br 285: " 286: int(410) 287: bool(false) 288: -- Line 9 -- 289: string(23) "this is the line with 290: " 291: int(433) 292: bool(false) 293: -- Line 10 -- 294: string(12) " character. " 295: int(445) 296: bool(true) 297: 298: -- Testing fgetss() with file opened using a+b mode -- 299: int(0) 300: int(445) 301: bool(false) 302: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 303: -- Line 1 -- 304: string(40) "<test>Testing fgetss() functions</test> 305: " 306: int(40) 307: bool(false) 308: -- Line 2 -- 309: string(10) " {;} this 310: " 311: int(99) 312: bool(false) 313: -- Line 3 -- 314: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 315: " 316: int(152) 317: bool(false) 318: -- Line 4 -- 319: string(21) "<html> html </html> 320: " 321: int(193) 322: bool(false) 323: -- Line 5 -- 324: string(43) "this line is without any html and php tags 325: " 326: int(236) 327: bool(false) 328: -- Line 6 -- 329: string(79) "this is a line with more than eighty character,want to check line splitting cor" 330: int(315) 331: bool(false) 332: -- Line 7 -- 333: string(27) "rectly after 80 characters 334: " 335: int(342) 336: bool(false) 337: -- Line 8 -- 338: string(46) "this text contains some html tags body br 339: " 340: int(410) 341: bool(false) 342: -- Line 9 -- 343: string(23) "this is the line with 344: " 345: int(433) 346: bool(false) 347: -- Line 10 -- 348: string(12) " character. " 349: int(445) 350: bool(true) 351: 352: -- Testing fgetss() with file opened using a+t mode -- 353: int(0) 354: int(445) 355: bool(false) 356: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 357: -- Line 1 -- 358: string(40) "<test>Testing fgetss() functions</test> 359: " 360: int(40) 361: bool(false) 362: -- Line 2 -- 363: string(10) " {;} this 364: " 365: int(99) 366: bool(false) 367: -- Line 3 -- 368: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 369: " 370: int(152) 371: bool(false) 372: -- Line 4 -- 373: string(21) "<html> html </html> 374: " 375: int(193) 376: bool(false) 377: -- Line 5 -- 378: string(43) "this line is without any html and php tags 379: " 380: int(236) 381: bool(false) 382: -- Line 6 -- 383: string(79) "this is a line with more than eighty character,want to check line splitting cor" 384: int(315) 385: bool(false) 386: -- Line 7 -- 387: string(27) "rectly after 80 characters 388: " 389: int(342) 390: bool(false) 391: -- Line 8 -- 392: string(46) "this text contains some html tags body br 393: " 394: int(410) 395: bool(false) 396: -- Line 9 -- 397: string(23) "this is the line with 398: " 399: int(433) 400: bool(false) 401: -- Line 10 -- 402: string(12) " character. " 403: int(445) 404: bool(true) 405: 406: -- Testing fgetss() with file opened using x+ mode -- 407: int(0) 408: int(445) 409: bool(false) 410: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 411: -- Line 1 -- 412: string(40) "<test>Testing fgetss() functions</test> 413: " 414: int(40) 415: bool(false) 416: -- Line 2 -- 417: string(10) " {;} this 418: " 419: int(99) 420: bool(false) 421: -- Line 3 -- 422: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 423: " 424: int(152) 425: bool(false) 426: -- Line 4 -- 427: string(21) "<html> html </html> 428: " 429: int(193) 430: bool(false) 431: -- Line 5 -- 432: string(43) "this line is without any html and php tags 433: " 434: int(236) 435: bool(false) 436: -- Line 6 -- 437: string(79) "this is a line with more than eighty character,want to check line splitting cor" 438: int(315) 439: bool(false) 440: -- Line 7 -- 441: string(27) "rectly after 80 characters 442: " 443: int(342) 444: bool(false) 445: -- Line 8 -- 446: string(46) "this text contains some html tags body br 447: " 448: int(410) 449: bool(false) 450: -- Line 9 -- 451: string(23) "this is the line with 452: " 453: int(433) 454: bool(false) 455: -- Line 10 -- 456: string(12) " character. " 457: int(445) 458: bool(true) 459: 460: -- Testing fgetss() with file opened using x+b mode -- 461: int(0) 462: int(445) 463: bool(false) 464: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 465: -- Line 1 -- 466: string(40) "<test>Testing fgetss() functions</test> 467: " 468: int(40) 469: bool(false) 470: -- Line 2 -- 471: string(10) " {;} this 472: " 473: int(99) 474: bool(false) 475: -- Line 3 -- 476: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 477: " 478: int(152) 479: bool(false) 480: -- Line 4 -- 481: string(21) "<html> html </html> 482: " 483: int(193) 484: bool(false) 485: -- Line 5 -- 486: string(43) "this line is without any html and php tags 487: " 488: int(236) 489: bool(false) 490: -- Line 6 -- 491: string(79) "this is a line with more than eighty character,want to check line splitting cor" 492: int(315) 493: bool(false) 494: -- Line 7 -- 495: string(27) "rectly after 80 characters 496: " 497: int(342) 498: bool(false) 499: -- Line 8 -- 500: string(46) "this text contains some html tags body br 501: " 502: int(410) 503: bool(false) 504: -- Line 9 -- 505: string(23) "this is the line with 506: " 507: int(433) 508: bool(false) 509: -- Line 10 -- 510: string(12) " character. " 511: int(445) 512: bool(true) 513: 514: -- Testing fgetss() with file opened using x+t mode -- 515: int(0) 516: int(445) 517: bool(false) 518: -- Reading line by line with allowable tags: <test>, <html>, <?> -- 519: -- Line 1 -- 520: string(40) "<test>Testing fgetss() functions</test> 521: " 522: int(40) 523: bool(false) 524: -- Line 2 -- 525: string(10) " {;} this 526: " 527: int(99) 528: bool(false) 529: -- Line 3 -- 530: string(44) "is a heredoc string. ksklnm@@$$&$&^%&^%&^%& 531: " 532: int(152) 533: bool(false) 534: -- Line 4 -- 535: string(21) "<html> html </html> 536: " 537: int(193) 538: bool(false) 539: -- Line 5 -- 540: string(43) "this line is without any html and php tags 541: " 542: int(236) 543: bool(false) 544: -- Line 6 -- 545: string(79) "this is a line with more than eighty character,want to check line splitting cor" 546: int(315) 547: bool(false) 548: -- Line 7 -- 549: string(27) "rectly after 80 characters 550: " 551: int(342) 552: bool(false) 553: -- Line 8 -- 554: string(46) "this text contains some html tags body br 555: " 556: int(410) 557: bool(false) 558: -- Line 9 -- 559: string(23) "this is the line with 560: " 561: int(433) 562: bool(false) 563: -- Line 10 -- 564: string(12) " character. " 565: int(445) 566: bool(true) 567: Done