summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/fgetss_basic1.phpt
blob: 80d1b74f3c42fe34d155d742626eba82e059e4c4 (plain)
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
136
137
--TEST--
Test fgetss() function : Basic functionality - read modes only
--FILE--
<?php
error_reporting(E_ALL & ~E_DEPRECATED);

/*
 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 = __DIR__."/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