mirror of
https://github.com/php/php-src.git
synced 2026-04-02 21:52:36 +02:00
MFB tests (they still fail though)
fix BC in fgetss()
This commit is contained in:
@@ -1196,6 +1196,11 @@ PHPAPI PHP_FUNCTION(fgetss)
|
||||
|
||||
php_stream_from_zval(stream, &zstream);
|
||||
|
||||
if (length > 0) {
|
||||
/* For BC reasons, fgetss() should only return length-1 bytes. */
|
||||
length--;
|
||||
}
|
||||
|
||||
if (stream->readbuf_type == IS_UNICODE) {
|
||||
UChar *buf = php_stream_get_line_ex(stream, IS_UNICODE, NULL_ZSTR, 0, length, &retlen);
|
||||
UChar *allowed = NULL;
|
||||
|
||||
83
ext/standard/tests/file/fgetss.phpt
Normal file
83
ext/standard/tests/file/fgetss.phpt
Normal file
@@ -0,0 +1,83 @@
|
||||
--TEST--
|
||||
fgetss() tests
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$filename = dirname(__FILE__)."/fgetss.html";
|
||||
|
||||
$array = array(
|
||||
"askasdfasdf<b>aaaaaa\n</b>dddddd",
|
||||
"asdqw<i onClick=\"hello();\">\naaaa<>qqqq",
|
||||
"aaa<script>function foo() {}</script>qqq",
|
||||
"asdasd<a\n asdjeje",
|
||||
"",
|
||||
"some text \n<b>blah</i>",
|
||||
"some another text <> hoho </>"
|
||||
);
|
||||
|
||||
foreach ($array as $str) {
|
||||
file_put_contents($filename, $str);
|
||||
$fp = fopen($filename, "r");
|
||||
var_dump(fgetss($fp));
|
||||
var_dump(fgetss($fp));
|
||||
}
|
||||
|
||||
foreach ($array as $str) {
|
||||
file_put_contents($filename, $str);
|
||||
$fp = fopen($filename, "r");
|
||||
var_dump(fgetss($fp, 10));
|
||||
var_dump(fgetss($fp, 10));
|
||||
}
|
||||
|
||||
var_dump(fgetss($fp, -10));
|
||||
var_dump(fgetss($fp, 0));
|
||||
fclose($fp);
|
||||
var_dump(fgetss($fp, 0));
|
||||
|
||||
@unlink($filename);
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(18) "askasdfasdfaaaaaa
|
||||
"
|
||||
string(6) "dddddd"
|
||||
string(6) "asdqw
|
||||
"
|
||||
string(8) "aaaaqqqq"
|
||||
string(23) "aaafunction foo() {}qqq"
|
||||
bool(false)
|
||||
string(6) "asdasd"
|
||||
string(0) ""
|
||||
bool(false)
|
||||
bool(false)
|
||||
string(11) "some text
|
||||
"
|
||||
string(4) "blah"
|
||||
string(24) "some another text hoho "
|
||||
bool(false)
|
||||
string(9) "askasdfas"
|
||||
string(6) "dfaaaa"
|
||||
string(5) "asdqw"
|
||||
string(0) ""
|
||||
string(3) "aaa"
|
||||
string(7) "functio"
|
||||
string(6) "asdasd"
|
||||
string(0) ""
|
||||
bool(false)
|
||||
bool(false)
|
||||
string(9) "some text"
|
||||
string(2) "
|
||||
"
|
||||
string(9) "some anot"
|
||||
string(9) "her text "
|
||||
|
||||
Warning: fgetss(): Length parameter must be greater than 0 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: fgetss(): Length parameter must be greater than 0 in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: fgetss(): %d is not a valid stream resource in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
69
ext/standard/tests/file/fgetss1.phpt
Normal file
69
ext/standard/tests/file/fgetss1.phpt
Normal file
@@ -0,0 +1,69 @@
|
||||
--TEST--
|
||||
more fgetss() tests
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$filename = dirname(__FILE__)."/fgetss1.html";
|
||||
|
||||
$array = array(
|
||||
"askasdfasdf<b>aaaaaa\n</b>dddddd",
|
||||
"asdqw<i onClick=\"hello();\">\naaaa<>qqqq",
|
||||
"aaa<script>function foo() {}</script>qqq",
|
||||
"asdasd<a\n asdjeje",
|
||||
"",
|
||||
"some text \n<b>blah</i>",
|
||||
"some another text <> hoho </>"
|
||||
);
|
||||
|
||||
foreach ($array as $str) {
|
||||
file_put_contents($filename, $str);
|
||||
$fp = fopen($filename, "r");
|
||||
var_dump(fgetss($fp, 1000, "<i>,<b>,<a>"));
|
||||
var_dump(fgetss($fp));
|
||||
}
|
||||
|
||||
foreach ($array as $str) {
|
||||
file_put_contents($filename, $str);
|
||||
$fp = fopen($filename, "r");
|
||||
var_dump(fgetss($fp, 10));
|
||||
var_dump(fgetss($fp, 10, "<script>,<a>"));
|
||||
}
|
||||
|
||||
@unlink($filename);
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(21) "askasdfasdf<b>aaaaaa
|
||||
"
|
||||
string(6) "dddddd"
|
||||
string(28) "asdqw<i onClick="hello();">
|
||||
"
|
||||
string(8) "aaaaqqqq"
|
||||
string(23) "aaafunction foo() {}qqq"
|
||||
bool(false)
|
||||
string(6) "asdasd"
|
||||
string(0) ""
|
||||
bool(false)
|
||||
bool(false)
|
||||
string(11) "some text
|
||||
"
|
||||
string(4) "blah"
|
||||
string(24) "some another text hoho "
|
||||
bool(false)
|
||||
string(9) "askasdfas"
|
||||
string(6) "dfaaaa"
|
||||
string(5) "asdqw"
|
||||
string(0) ""
|
||||
string(3) "aaa"
|
||||
string(9) "t>functio"
|
||||
string(6) "asdasd"
|
||||
string(0) ""
|
||||
bool(false)
|
||||
bool(false)
|
||||
string(9) "some text"
|
||||
string(2) "
|
||||
"
|
||||
string(9) "some anot"
|
||||
string(9) "her text "
|
||||
Done
|
||||
Reference in New Issue
Block a user