Annotation of embedaddon/php/ext/standard/tests/file/fgetss_variation4.phpt, revision 1.1.1.2
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:
1.1.1.2 ! misho 50: // rewind the file pointer to beginning of the file
1.1 misho 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>