Annotation of embedaddon/php/ext/standard/tests/file/fgetss_variation3.phpt, revision 1.1.1.2
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:
1.1.1.2 ! misho 54: // rewind the file pointer to beginning of the file
1.1 misho 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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>