Annotation of embedaddon/php/ext/standard/tests/file/fgetss_variation4.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test fgetss() function : usage variations - read  modes, file pointer at EOF
                      3: --SKIPIF--
                      4: <?php
                      5: if(substr(PHP_OS, 0, 3) == "WIN")
                      6:   die("skip not for Windows");
                      7: ?>
                      8: --FILE--
                      9: <?php
                     10: /*
                     11:  Prototype: string fgetss ( resource $handle [, int $length [, string $allowable_tags]] );
                     12:  Description: Gets line from file pointer and strip HTML tags
                     13: */
                     14: 
                     15: // include the common file related test functions 
                     16: include ("file.inc");
                     17: 
                     18: echo "*** Testing fgetss() : usage variations  ***\n";
                     19: 
                     20: /* string with html and php tags */
                     21: $string_with_tags = <<<EOT
                     22: <test>Testing fgetss() functions</test>
                     23: <?php echo "this string is within php tag"; ?> {;}<{> this
                     24: is a heredoc string. <pg>ksklnm@@$$&$&^%&^%&^%&</pg>
                     25: <html> html </html> <?php echo "php"; ?>
                     26: this line is without any html and php tags
                     27: this is a line with more than eighty character,want to check line splitting correctly after 80 characters
                     28: this is the text containing \r character 
                     29: this text contains some html tags <body> body </body> <br> br </br>
                     30: this is the line with \n character. 
                     31: EOT;
                     32: 
                     33: $filename = dirname(__FILE__)."/fgetss_variation4.tmp"; 
                     34: 
                     35: /* try reading the file opened in different modes of reading */
                     36: $file_modes = array("r","rb", "rt","r+", "r+b", "r+t");
                     37: 
                     38: for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
                     39:   echo "\n-- Testing fgetss() with file opened using $file_modes[$mode_counter] mode --\n";
                     40: 
                     41:   /* create an empty file and write the strings with tags */
                     42:   create_file ($filename); //create an empty file
                     43:   file_put_contents($filename, $string_with_tags); 
                     44:   $file_handle = fopen($filename, $file_modes[$mode_counter]);
                     45:   if(!$file_handle) {
                     46:     echo "Error: failed to open file $filename!\n";
                     47:     exit();
                     48:   }
                     49: 
                     50:   // rewind the file pointer to begining of the file
                     51:   var_dump( filesize($filename) );
                     52:   var_dump( rewind($file_handle) );
                     53:   var_dump( ftell($file_handle) );
                     54:   var_dump( feof($file_handle) );
                     55:   
                     56:   echo "-- Reading when file pointer points to EOF --\n";
                     57:   var_dump( fseek($file_handle,0,SEEK_END) ); // now file pointer at end
                     58:   var_dump( ftell($file_handle) ); //ensure file pointer at end
                     59:   var_dump( fgetss($file_handle) ); // try to read
                     60:   var_dump( ftell($file_handle) ); // find out file position
                     61:   var_dump( feof($file_handle) );  // ensure that file pointer is at eof
                     62: 
                     63:   // now file is at the end try reading with length and allowable tags,expecting false
                     64:   var_dump( fgetss($file_handle, 80, "<test>, <html>, <?>") );
                     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:   // close the file 
                     69:   fclose($file_handle); 
                     70:   // delete the file 
                     71:   delete_file($filename);
                     72: } // end of for - mode_counter
                     73: 
                     74: echo "Done\n";
                     75: ?>
                     76: --EXPECTF--
                     77: *** Testing fgetss() : usage variations  ***
                     78: 
                     79: -- Testing fgetss() with file opened using r mode --
                     80: int(486)
                     81: bool(true)
                     82: int(0)
                     83: bool(false)
                     84: -- Reading when file pointer points to EOF --
                     85: int(0)
                     86: int(486)
                     87: bool(false)
                     88: int(486)
                     89: bool(true)
                     90: bool(false)
                     91: int(486)
                     92: bool(true)
                     93: 
                     94: -- Testing fgetss() with file opened using rb mode --
                     95: int(486)
                     96: bool(true)
                     97: int(0)
                     98: bool(false)
                     99: -- Reading when file pointer points to EOF --
                    100: int(0)
                    101: int(486)
                    102: bool(false)
                    103: int(486)
                    104: bool(true)
                    105: bool(false)
                    106: int(486)
                    107: bool(true)
                    108: 
                    109: -- Testing fgetss() with file opened using rt mode --
                    110: int(486)
                    111: bool(true)
                    112: int(0)
                    113: bool(false)
                    114: -- Reading when file pointer points to EOF --
                    115: int(0)
                    116: int(486)
                    117: bool(false)
                    118: int(486)
                    119: bool(true)
                    120: bool(false)
                    121: int(486)
                    122: bool(true)
                    123: 
                    124: -- Testing fgetss() with file opened using r+ mode --
                    125: int(486)
                    126: bool(true)
                    127: int(0)
                    128: bool(false)
                    129: -- Reading when file pointer points to EOF --
                    130: int(0)
                    131: int(486)
                    132: bool(false)
                    133: int(486)
                    134: bool(true)
                    135: bool(false)
                    136: int(486)
                    137: bool(true)
                    138: 
                    139: -- Testing fgetss() with file opened using r+b mode --
                    140: int(486)
                    141: bool(true)
                    142: int(0)
                    143: bool(false)
                    144: -- Reading when file pointer points to EOF --
                    145: int(0)
                    146: int(486)
                    147: bool(false)
                    148: int(486)
                    149: bool(true)
                    150: bool(false)
                    151: int(486)
                    152: bool(true)
                    153: 
                    154: -- Testing fgetss() with file opened using r+t mode --
                    155: int(486)
                    156: bool(true)
                    157: int(0)
                    158: bool(false)
                    159: -- Reading when file pointer points to EOF --
                    160: int(0)
                    161: int(486)
                    162: bool(false)
                    163: int(486)
                    164: bool(true)
                    165: bool(false)
                    166: int(486)
                    167: bool(true)
                    168: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>