1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
--TEST--
Test fgetss() function : Basic functionality - read modes only
--FILE--
<?php
/*
Prototype: string fgetss ( resource $handle [, int $length [, string $allowable_tags]] );
Description: Gets line from file pointer and strip HTML tags
*/
/* test fgetss with all read modes */
// include the common file related test functions
include ("file.inc");
echo "*** Testing fgetss() : Basic operations ***\n";
/* string with html and php tags */
$string_with_tags = <<<EOT
<test>Testing fgetss() functions</test>
<?php echo "this string is within php tag"; ?> {;}<{> this
is a heredoc string. <pg>ksklnm@@$$&$&^%&^%&^%&</pg>
<html> html </html> <?php echo "php"; ?>
EOT;
if(substr(PHP_OS, 0, 3) == "WIN") {
$string_with_tags = str_replace("\r",'', $string_with_tags);
}
/* try reading the file opened in different modes of reading */
$file_modes = array("r","rb", "rt","r+", "r+b", "r+t");
for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
echo "\n-- Testing fgetss() with file opened using $file_modes[$mode_counter] mode --\n";
/* create an empty file and write the strings with tags */
$filename = dirname(__FILE__)."/fgetss_basic1.tmp";
create_file ($filename); //create an empty file
file_put_contents($filename, $string_with_tags);
$file_handle = fopen($filename, $file_modes[$mode_counter]);
if(!$file_handle) {
echo "Error: failed to open file $filename!\n";
exit();
}
rewind($file_handle);
/* read entire file and strip tags */
echo "-- fgetss() with default length, file pointer at 0 --\n";
var_dump( fgetss($file_handle) ); // no length and allowable tags provided, reads entire file
var_dump( ftell($file_handle) );
var_dump( feof($file_handle) );
rewind($file_handle);
/* read entire file and strip tags tags */
echo "-- fgets() with length = 30, file pointer at 0 --\n";
var_dump( fgetss($file_handle ,30) ); // length parameter given,not reading entire file
var_dump( ftell($file_handle) ); // checking file pointer position initially
var_dump( feof($file_handle) ); // confirm file pointer is not at eof
// close the file
fclose($file_handle);
// delete the file
delete_file($filename);
} // end of for - mode_counter
echo "Done\n";
?>
--EXPECT--
*** Testing fgetss() : Basic operations ***
-- Testing fgetss() with file opened using r mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
-- Testing fgetss() with file opened using rb mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
-- Testing fgetss() with file opened using rt mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
-- Testing fgetss() with file opened using r+ mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
-- Testing fgetss() with file opened using r+b mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
-- Testing fgetss() with file opened using r+t mode --
-- fgetss() with default length, file pointer at 0 --
string(27) "Testing fgetss() functions
"
int(40)
bool(false)
-- fgets() with length = 30, file pointer at 0 --
string(23) "Testing fgetss() functi"
int(29)
bool(false)
Done
|