Annotation of embedaddon/php/ext/standard/tests/file/fgetss_variation5-win32.phpt, revision 1.1.1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>