From: Olumide Samson Date: Sun, 25 Aug 2019 13:24:46 +0000 (+0200) Subject: Add some header and html function stub X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9c961e1601efc7abef9586f5145e00a2d8ed0cd;p=php Add some header and html function stub --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 19bb038bf0..effafee970 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1228,82 +1228,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_pfsockopen, 0, 0, 1) ZEND_ARG_INFO(1, errstr) ZEND_ARG_INFO(0, timeout) ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ head.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_header, 0, 0, 1) - ZEND_ARG_INFO(0, header) - ZEND_ARG_INFO(0, replace) - ZEND_ARG_INFO(0, http_response_code) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_header_remove, 0, 0, 0) - ZEND_ARG_INFO(0, name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_setcookie, 0, 0, 1) - ZEND_ARG_INFO(0, name) - ZEND_ARG_INFO(0, value) - ZEND_ARG_INFO(0, expires_or_options) - ZEND_ARG_INFO(0, path) - ZEND_ARG_INFO(0, domain) - ZEND_ARG_INFO(0, secure) - ZEND_ARG_INFO(0, httponly) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_setrawcookie, 0, 0, 1) - ZEND_ARG_INFO(0, name) - ZEND_ARG_INFO(0, value) - ZEND_ARG_INFO(0, expires_or_options) - ZEND_ARG_INFO(0, path) - ZEND_ARG_INFO(0, domain) - ZEND_ARG_INFO(0, secure) - ZEND_ARG_INFO(0, httponly) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_headers_sent, 0, 0, 0) - ZEND_ARG_INFO(1, file) - ZEND_ARG_INFO(1, line) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_headers_list, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_http_response_code, 0, 0, 0) - ZEND_ARG_INFO(0, response_code) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ html.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlspecialchars, 0, 0, 1) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, quote_style) - ZEND_ARG_INFO(0, encoding) - ZEND_ARG_INFO(0, double_encode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlspecialchars_decode, 0, 0, 1) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, quote_style) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_html_entity_decode, 0, 0, 1) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, quote_style) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlentities, 0, 0, 1) - ZEND_ARG_INFO(0, string) - ZEND_ARG_INFO(0, quote_style) - ZEND_ARG_INFO(0, encoding) - ZEND_ARG_INFO(0, double_encode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_get_html_translation_table, 0, 0, 0) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, quote_style) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - /* }}} */ /* {{{ http.c */ ZEND_BEGIN_ARG_INFO_EX(arginfo_http_build_query, 0, 0, 1) diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index b7b89a04cf..a730a29059 100644 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -163,3 +163,38 @@ function inet_pton (string $ip_address) {} /** @return string|false */ function metaphone(string $text, int $phones = 0) {} + +/* {{{ head.c */ +function header(string $string, bool $replace = true, int $http_response_code = null): void { } + +function header_remove(string $name = UNKNOWN): void { } + +/** @param int|array $expires_or_options */ +function setrawcookie(string $name, string $value = '', $expires_or_options = 0, string $path = '', string $domain = '', bool $secure = false, bool $httponly = false): bool {} + + +/** @param int|array $expires_or_options */ +function setcookie(string $name, string $value = '', $expires_or_options = 0, string $path = '', string $domain = '', bool $secure = false, bool $httponly = false): bool {} + +/** @return int|bool */ +function http_response_code(int $response_code = 0) {} + +function headers_sent(&$file = null, &$line = null): bool {} + +function headers_list(): array { } + +/* {{{ html.c */ + +function htmlspecialchars(string $string, int $quote_style = ENT_COMPAT, ?string $encoding = null, bool $double_encode = true): string {} + +/** @return string|false */ +function htmlspecialchars_decode(string $string, int $quote_style = ENT_COMPAT) {} + +/** @return string|false */ +function html_entity_decode(string $string, int $quote_style = ENT_COMPAT, string $encoding = UNKNOWN) {} + +function htmlentities(string $string, int $quote_style = ENT_COMPAT, ?string $encoding = null, bool $double_encode = true): string {} + +function get_html_translation_table(int $table = HTML_SPECIALCHARS, int $quote_style = ENT_COMPAT, string $encoding = "UTF-8"): array {} + +/* }}} */ diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index 0981640447..a4ebfe8544 100644 --- a/ext/standard/basic_functions_arginfo.h +++ b/ext/standard/basic_functions_arginfo.h @@ -188,3 +188,62 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_metaphone, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, text, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, phones, IS_LONG, 0) ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_header, 0, 1, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, replace, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, http_response_code, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_header_remove, 0, 0, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_setrawcookie, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) + ZEND_ARG_INFO(0, expires_or_options) + ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, secure, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, httponly, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +#define arginfo_setcookie arginfo_setrawcookie + +ZEND_BEGIN_ARG_INFO_EX(arginfo_http_response_code, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, response_code, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_headers_sent, 0, 0, _IS_BOOL, 0) + ZEND_ARG_INFO(1, file) + ZEND_ARG_INFO(1, line) +ZEND_END_ARG_INFO() + +#define arginfo_headers_list arginfo_ob_list_handlers + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_htmlspecialchars, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, quote_style, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, double_encode, _IS_BOOL, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlspecialchars_decode, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, quote_style, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_html_entity_decode, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, quote_style, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_htmlentities arginfo_htmlspecialchars + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_html_translation_table, 0, 0, IS_ARRAY, 0) + ZEND_ARG_TYPE_INFO(0, table, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, quote_style, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0) +ZEND_END_ARG_INFO() diff --git a/ext/standard/tests/strings/bug61116.phpt b/ext/standard/tests/strings/bug61116.phpt index b9b38a7bbb..478004a635 100644 --- a/ext/standard/tests/strings/bug61116.phpt +++ b/ext/standard/tests/strings/bug61116.phpt @@ -9,18 +9,20 @@ echo new ReflectionFunction('get_html_translation_table'), "\n"; Function [ function htmlspecialchars ] { - Parameters [4] { - Parameter #0 [ $string ] - Parameter #1 [ $quote_style ] - Parameter #2 [ $encoding ] - Parameter #3 [ $double_encode ] + Parameter #0 [ string $string ] + Parameter #1 [ int $quote_style ] + Parameter #2 [ string or NULL $encoding ] + Parameter #3 [ bool $double_encode ] } + - Return [ string ] } Function [ function get_html_translation_table ] { - Parameters [3] { - Parameter #0 [ $table ] - Parameter #1 [ $quote_style ] - Parameter #2 [ $encoding ] + Parameter #0 [ int $table ] + Parameter #1 [ int $quote_style ] + Parameter #2 [ string $encoding ] } + - Return [ array ] }