1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Generate optimizer func info from stubs for various extensions (#7409)

ext/hash, ext/iconv, ext/mbstring, ext/xml, ext/zlib
This commit is contained in:
Máté Kocsis
2021-08-26 19:52:11 +02:00
committed by GitHub
parent c95e036813
commit fdc6082902
12 changed files with 223 additions and 89 deletions

View File

@@ -344,90 +344,9 @@ static const func_info_t old_func_infos[] = {
/* ext/preg */
F1("preg_grep", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY),
/* ext/mbstring */
F1("mb_convert_case", MAY_BE_STRING),
F1("mb_strtoupper", MAY_BE_STRING),
F1("mb_strtolower", MAY_BE_STRING),
F1("mb_language", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_STRING),
F1("mb_internal_encoding", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_STRING),
F1("mb_http_input", MAY_BE_FALSE | MAY_BE_STRING| MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_http_output", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_STRING),
F1("mb_detect_order", MAY_BE_TRUE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_substitute_character", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_LONG | MAY_BE_STRING),
F1("mb_output_handler", MAY_BE_STRING),
F1("mb_preferred_mime_name", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_strstr", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_strrchr", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_stristr", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_strrichr", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_substr", MAY_BE_STRING),
F1("mb_strcut", MAY_BE_STRING),
F1("mb_strimwidth", MAY_BE_STRING),
F1("mb_convert_encoding", MAY_BE_FALSE | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY),
F1("mb_detect_encoding", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_list_encodings", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_encoding_aliases", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_convert_kana", MAY_BE_STRING),
F1("mb_encode_mimeheader", MAY_BE_STRING),
F1("mb_decode_mimeheader", MAY_BE_STRING),
F1("mb_convert_variables", MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_encode_numericentity", MAY_BE_STRING),
F1("mb_decode_numericentity", MAY_BE_STRING),
F1("mb_get_info", MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
F1("mb_regex_encoding", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_STRING),
F1("mb_regex_set_options", MAY_BE_STRING),
F1("mb_ereg_replace", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_eregi_replace", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_ereg_replace_callback", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_STRING),
F1("mb_split", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("mb_ereg_search_pos", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_LONG),
F1("mb_ereg_search_regs", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_STRING),
F1("mb_ereg_search_getregs", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_STRING),
/* ext/iconv */
F1("iconv", MAY_BE_FALSE | MAY_BE_STRING),
F1("iconv_get_encoding", MAY_BE_FALSE | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING),
F1("iconv_substr", MAY_BE_FALSE | MAY_BE_STRING),
F1("iconv_mime_encode", MAY_BE_FALSE | MAY_BE_STRING),
F1("iconv_mime_decode", MAY_BE_FALSE | MAY_BE_STRING),
F1("iconv_mime_decode_headers", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
/* ext/xml */
F1("xml_error_string", MAY_BE_NULL | MAY_BE_STRING),
F1("xml_parser_get_option", MAY_BE_LONG | MAY_BE_STRING),
F1("utf8_encode", MAY_BE_STRING),
F1("utf8_decode", MAY_BE_STRING),
/* ext/zlib */
F1("gzfile", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("gzcompress", MAY_BE_FALSE | MAY_BE_STRING),
F1("gzuncompress", MAY_BE_FALSE | MAY_BE_STRING),
F1("gzdeflate", MAY_BE_FALSE | MAY_BE_STRING),
F1("gzinflate", MAY_BE_FALSE | MAY_BE_STRING),
F1("gzencode", MAY_BE_FALSE | MAY_BE_STRING),
F1("gzdecode", MAY_BE_FALSE | MAY_BE_STRING),
F1("zlib_encode", MAY_BE_FALSE | MAY_BE_STRING),
F1("zlib_decode", MAY_BE_FALSE | MAY_BE_STRING),
F1("zlib_get_coding_type", MAY_BE_FALSE | MAY_BE_STRING),
F1("ob_gzhandler", MAY_BE_FALSE | MAY_BE_STRING),
/* ext/hash */
F1("hash", MAY_BE_FALSE | MAY_BE_STRING),
F1("hash_file", MAY_BE_FALSE | MAY_BE_STRING),
F1("hash_hmac", MAY_BE_FALSE | MAY_BE_STRING),
F1("hash_hmac_algos", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("hash_hmac_file", MAY_BE_FALSE | MAY_BE_STRING),
F1("hash_hkdf", MAY_BE_STRING),
F1("hash_init", MAY_BE_OBJECT),
F1("hash_final", MAY_BE_STRING),
F1("hash_copy", MAY_BE_OBJECT),
F1("hash_algos", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING),
F1("hash_pbkdf2", MAY_BE_STRING),
F1("mhash_keygen_s2k", MAY_BE_FALSE | MAY_BE_STRING),
F1("mhash_get_hash_name", MAY_BE_FALSE | MAY_BE_STRING),
F1("mhash", MAY_BE_FALSE | MAY_BE_FALSE | MAY_BE_STRING),
/* ext/filter */
F1("filter_var_array", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF),

View File

@@ -25,6 +25,32 @@ static const func_info_t func_infos[] = {
F1("spl_classes", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING),
F1("spl_object_hash", MAY_BE_STRING),
FN("socket_export_stream", MAY_BE_RESOURCE|MAY_BE_FALSE),
F1("iconv_substr", MAY_BE_STRING|MAY_BE_FALSE),
F1("iconv_mime_encode", MAY_BE_STRING|MAY_BE_FALSE),
F1("iconv_mime_decode", MAY_BE_STRING|MAY_BE_FALSE),
F1("iconv_mime_decode_headers", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_FALSE),
F1("iconv", MAY_BE_STRING|MAY_BE_FALSE),
F1("iconv_get_encoding", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_STRING|MAY_BE_FALSE),
F1("hash", MAY_BE_STRING|MAY_BE_FALSE),
F1("hash_file", MAY_BE_STRING|MAY_BE_FALSE),
F1("hash_hmac", MAY_BE_STRING|MAY_BE_FALSE),
F1("hash_hmac_file", MAY_BE_STRING|MAY_BE_FALSE),
F1("hash_init", MAY_BE_OBJECT),
F1("hash_final", MAY_BE_STRING),
F1("hash_copy", MAY_BE_OBJECT),
F1("hash_algos", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
F1("hash_hmac_algos", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
F1("hash_pbkdf2", MAY_BE_STRING),
F1("hash_hkdf", MAY_BE_STRING),
#if defined(PHP_MHASH_BC)
F1("mhash_get_hash_name", MAY_BE_STRING|MAY_BE_FALSE),
#endif
#if defined(PHP_MHASH_BC)
F1("mhash_keygen_s2k", MAY_BE_STRING|MAY_BE_FALSE),
#endif
#if defined(PHP_MHASH_BC)
F1("mhash", MAY_BE_STRING|MAY_BE_FALSE),
#endif
FN("dba_popen", MAY_BE_RESOURCE|MAY_BE_FALSE),
FN("dba_open", MAY_BE_RESOURCE|MAY_BE_FALSE),
F1("date", MAY_BE_STRING),
@@ -58,7 +84,20 @@ static const func_info_t func_infos[] = {
F1("date_sunset", MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_FALSE),
F1("date_sun_info", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_FALSE|MAY_BE_ARRAY_OF_TRUE|MAY_BE_ARRAY_OF_LONG),
FN("bzopen", MAY_BE_RESOURCE|MAY_BE_FALSE),
F1("ob_gzhandler", MAY_BE_STRING|MAY_BE_FALSE),
F1("zlib_get_coding_type", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzfile", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_FALSE),
F1("gzopen", MAY_BE_RESOURCE|MAY_BE_FALSE),
F1("zlib_encode", MAY_BE_STRING|MAY_BE_FALSE),
F1("zlib_decode", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzdeflate", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzencode", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzcompress", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzinflate", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzdecode", MAY_BE_STRING|MAY_BE_FALSE),
F1("gzuncompress", MAY_BE_STRING|MAY_BE_FALSE),
F1("xml_error_string", MAY_BE_STRING|MAY_BE_NULL),
F1("xml_parser_get_option", MAY_BE_STRING|MAY_BE_LONG),
#if HAVE_NANOSLEEP
F1("time_nanosleep", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_BOOL),
#endif
@@ -324,6 +363,62 @@ static const func_info_t func_infos[] = {
F1("bcpowmod", MAY_BE_STRING),
F1("bcpow", MAY_BE_STRING),
F1("bcsqrt", MAY_BE_STRING),
F1("mb_language", MAY_BE_STRING|MAY_BE_BOOL),
F1("mb_internal_encoding", MAY_BE_STRING|MAY_BE_BOOL),
F1("mb_http_input", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_http_output", MAY_BE_STRING|MAY_BE_BOOL),
F1("mb_detect_order", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_TRUE),
F1("mb_substitute_character", MAY_BE_STRING|MAY_BE_LONG|MAY_BE_BOOL),
F1("mb_preferred_mime_name", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_output_handler", MAY_BE_STRING),
F1("mb_strstr", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_strrchr", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_stristr", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_strrichr", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_substr", MAY_BE_STRING),
F1("mb_strcut", MAY_BE_STRING),
F1("mb_strimwidth", MAY_BE_STRING),
F1("mb_convert_encoding", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_ANY|MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_convert_case", MAY_BE_STRING),
F1("mb_strtoupper", MAY_BE_STRING),
F1("mb_strtolower", MAY_BE_STRING),
F1("mb_detect_encoding", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_list_encodings", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
F1("mb_encoding_aliases", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING),
F1("mb_encode_mimeheader", MAY_BE_STRING),
F1("mb_decode_mimeheader", MAY_BE_STRING),
F1("mb_convert_kana", MAY_BE_STRING),
F1("mb_convert_variables", MAY_BE_STRING|MAY_BE_FALSE),
F1("mb_encode_numericentity", MAY_BE_STRING),
F1("mb_decode_numericentity", MAY_BE_STRING),
F1("mb_get_info", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE),
#if defined(HAVE_MBREGEX)
F1("mb_regex_encoding", MAY_BE_STRING|MAY_BE_BOOL),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_ereg_replace", MAY_BE_STRING|MAY_BE_FALSE|MAY_BE_NULL),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_eregi_replace", MAY_BE_STRING|MAY_BE_FALSE|MAY_BE_NULL),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_ereg_replace_callback", MAY_BE_STRING|MAY_BE_FALSE|MAY_BE_NULL),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_split", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_FALSE),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_ereg_search_pos", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_OF_LONG|MAY_BE_FALSE),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_ereg_search_regs", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_FALSE|MAY_BE_FALSE),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_ereg_search_getregs", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_FALSE|MAY_BE_FALSE),
#endif
#if defined(HAVE_MBREGEX)
F1("mb_regex_set_options", MAY_BE_STRING),
#endif
F1("session_name", MAY_BE_STRING|MAY_BE_FALSE),
F1("session_module_name", MAY_BE_STRING|MAY_BE_FALSE),
F1("session_save_path", MAY_BE_STRING|MAY_BE_FALSE),

View File

@@ -1,14 +1,20 @@
<?php
/** @generate-class-entries */
/** @refcount 1 */
function hash(string $algo, string $data, bool $binary = false, array $options = []): string|false {}
/** @refcount 1 */
function hash_file(string $algo, string $filename, bool $binary = false, array $options = []): string|false {}
/** @refcount 1 */
function hash_hmac(string $algo, string $data, string $key, bool $binary = false): string|false {}
/** @refcount 1 */
function hash_hmac_file(string $algo, string $data, string $key, bool $binary = false): string|false {}
/** @refcount 1 */
function hash_init(string $algo, int $flags = 0, string $key = "", array $options = []): HashContext {}
function hash_update(HashContext $context, string $data): bool {}
@@ -19,34 +25,55 @@ function hash_update_stream(HashContext $context, $stream, int $length = -1): in
/** @param resource|null $stream_context */
function hash_update_file(HashContext $context, string $filename, $stream_context = null): bool {}
/** @refcount 1 */
function hash_final(HashContext $context, bool $binary = false): string {}
/** @refcount 1 */
function hash_copy(HashContext $context): HashContext {}
/**
* @return array<int, string>
* @refcount 1
*/
function hash_algos(): array {}
/**
* @return array<int, string>
* @refcount 1
*/
function hash_hmac_algos(): array {}
/** @refcount 1 */
function hash_pbkdf2(string $algo, string $password, string $salt, int $iterations, int $length = 0, bool $binary = false): string {}
function hash_equals(string $known_string, string $user_string): bool {}
/** @refcount 1 */
function hash_hkdf(string $algo, string $key, int $length = 0, string $info = "", string $salt = ""): string {}
#ifdef PHP_MHASH_BC
/** @deprecated */
function mhash_get_block_size(int $algo): int|false {}
/** @deprecated */
/**
* @refcount 1
* @deprecated
*/
function mhash_get_hash_name(int $algo): string|false {}
/** @deprecated */
/**
* @refcount 1
* @deprecated
*/
function mhash_keygen_s2k(int $algo, string $password, string $salt, int $length): string|false {}
/** @deprecated */
function mhash_count(): int {}
/** @deprecated */
/**
* @refcount 1
* @deprecated
*/
function mhash(int $algo, string $data, ?string $key = null): string|false {}
#endif

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 8c35168fb1c95e76c5c77fd0c0e8d295e13a0414 */
* Stub hash: d0ed07f608581a5700a10ec53a817ca788ef9638 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_hash, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0)

View File

@@ -4,20 +4,32 @@
function iconv_strlen(string $string, ?string $encoding = null): int|false {}
/** @refcount 1 */
function iconv_substr(string $string, int $offset, ?int $length = null, ?string $encoding = null): string|false {}
function iconv_strpos(string $haystack, string $needle, int $offset = 0, ?string $encoding = null): int|false {}
function iconv_strrpos(string $haystack, string $needle, ?string $encoding = null): int|false {}
/** @refcount 1 */
function iconv_mime_encode(string $field_name, string $field_value, array $options = []): string|false {}
/** @refcount 1 */
function iconv_mime_decode(string $string, int $mode = 0, ?string $encoding = null): string|false {}
/**
* @return array<string, string|array>|false
* @refcount 1
*/
function iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false {}
/** @refcount 1 */
function iconv(string $from_encoding, string $to_encoding, string $string): string|false {}
function iconv_set_encoding(string $type, string $encoding): bool {}
/**
* @return array<string, string>|string|false
* @refcount 1
*/
function iconv_get_encoding(string $type = "all"): array|string|false {}

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: c7b11a7cd853ede0ca7c5540995d8a7224d00da0 */
* Stub hash: c7198f92b39f7a15d242a74ed5f42036f858da2e */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_iconv_strlen, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)

View File

@@ -2,23 +2,37 @@
/** @generate-class-entries */
/** @refcount 1 */
function mb_language(?string $language = null): string|bool {}
/** @refcount 1 */
function mb_internal_encoding(?string $encoding = null): string|bool {}
/**
* @return array<int, string>|string|false
* @refcount 1
*/
function mb_http_input(?string $type = null): array|string|false {}
/** @refcount 1 */
function mb_http_output(?string $encoding = null): string|bool {}
/**
* @return array<int, string>|true
* @refcount 1
*/
function mb_detect_order(array|string|null $encoding = null): array|bool {}
/** @refcount 1 */
function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool {}
/** @refcount 1 */
function mb_preferred_mime_name(string $encoding): string|false {}
/** @param array $result */
function mb_parse_str(string $string, &$result): bool {}
/** @refcount 1 */
function mb_output_handler(string $string, int $status): string {}
function mb_str_split(string $string, int $length = 1, ?string $encoding = null): array {}
@@ -33,52 +47,82 @@ function mb_stripos(string $haystack, string $needle, int $offset = 0, ?string $
function mb_strripos(string $haystack, string $needle, int $offset = 0, ?string $encoding = null): int|false {}
/** @refcount 1 */
function mb_strstr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false {}
/** @refcount 1 */
function mb_strrchr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false {}
/** @refcount 1 */
function mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false {}
/** @refcount 1 */
function mb_strrichr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false {}
function mb_substr_count(string $haystack, string $needle, ?string $encoding = null): int {}
/** @refcount 1 */
function mb_substr(string $string, int $start, ?int $length = null, ?string $encoding = null): string {}
/** @refcount 1 */
function mb_strcut(string $string, int $start, ?int $length = null, ?string $encoding = null): string {}
function mb_strwidth(string $string, ?string $encoding = null): int {}
/** @refcount 1 */
function mb_strimwidth(string $string, int $start, int $width, string $trim_marker = "", ?string $encoding = null): string {}
/** @refcount 1 */
function mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false {}
/** @refcount 1 */
function mb_convert_case(string $string, int $mode, ?string $encoding = null): string {}
/** @refcount 1 */
function mb_strtoupper(string $string, ?string $encoding = null): string {}
/** @refcount 1 */
function mb_strtolower(string $string, ?string $encoding = null): string {}
/** @refcount 1 */
function mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false {}
/**
* @return array<int, string>
* @refcount 1
*/
function mb_list_encodings(): array {}
/**
* @return array<int, string>
* @refcount 1
*/
function mb_encoding_aliases(string $encoding): array {}
/** @refcount 1 */
function mb_encode_mimeheader(string $string, ?string $charset = null, ?string $transfer_encoding = null, string $newline = "\r\n", int $indent = 0): string {}
/** @refcount 1 */
function mb_decode_mimeheader(string $string): string {}
/** @refcount 1 */
function mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null): string {}
/** @refcount 1 */
function mb_convert_variables(string $to_encoding, array|string $from_encoding, mixed &$var, mixed &...$vars): string|false {}
/** @refcount 1 */
function mb_encode_numericentity(string $string, array $map, ?string $encoding = null, bool $hex = false): string {}
/** @refcount 1 */
function mb_decode_numericentity(string $string, array $map, ?string $encoding = null): string {}
function mb_send_mail(string $to, string $subject, string $message, array|string $additional_headers = [], ?string $additional_params = null): bool {}
/**
* @return array<int|string, int|string|array>|string|int|false
* @refcount 1
*/
function mb_get_info(string $type = "all"): array|string|int|false {}
function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool {}
@@ -90,6 +134,7 @@ function mb_ord(string $string, ?string $encoding = null): int|false {}
function mb_chr(int $codepoint, ?string $encoding = null): string|false {}
#ifdef HAVE_MBREGEX
/** @refcount 1 */
function mb_regex_encoding(?string $encoding = null): string|bool {}
/** @param array $matches */
@@ -98,29 +143,49 @@ function mb_ereg(string $pattern, string $string, &$matches = null): bool {}
/** @param array $matches */
function mb_eregi(string $pattern, string $string, &$matches = null): bool {}
/** @refcount 1 */
function mb_ereg_replace(string $pattern, string $replacement, string $string, ?string $options = null): string|false|null {}
/** @refcount 1 */
function mb_eregi_replace(string $pattern, string $replacement, string $string, ?string $options = null): string|false|null {}
/** @refcount 1 */
function mb_ereg_replace_callback(string $pattern, callable $callback, string $string, ?string $options = null): string|false|null {}
/**
* @return array<int, string>|false
* @refcount 1
*/
function mb_split(string $pattern, string $string, int $limit = -1): array|false {}
function mb_ereg_match(string $pattern, string $string, ?string $options = null): bool {}
function mb_ereg_search(?string $pattern = null, ?string $options = null): bool {}
/**
* @return array<int, int>|false
* @refcount 1
*/
function mb_ereg_search_pos(?string $pattern = null, ?string $options = null): array|false {}
/**
* @return array<int|string, string|false>|false
* @refcount 1
*/
function mb_ereg_search_regs(?string $pattern = null, ?string $options = null): array|false {}
function mb_ereg_search_init(string $string, ?string $pattern = null, ?string $options = null): bool {}
/**
* @return array<int|string, string|false>|false
* @refcount 1
*/
function mb_ereg_search_getregs(): array|false {}
function mb_ereg_search_getpos(): int {}
function mb_ereg_search_setpos(int $offset): bool {}
/** @refcount 1 */
function mb_regex_set_options(?string $options = null): string {}
#endif

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: eef196b29323ceb0a5d67703e62b11d0004c615b */
* Stub hash: b4709ffa2a2f993e3d280c5cd6fd731b58d4d9a6 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, language, IS_STRING, 1, "null")

View File

@@ -48,6 +48,7 @@ function xml_parse_into_struct(XMLParser $parser, string $data, &$values, &$inde
function xml_get_error_code(XMLParser $parser): int {}
/** @refcount 1 */
function xml_error_string(int $error_code): ?string {}
function xml_get_current_line_number(XMLParser $parser): int {}
@@ -61,6 +62,7 @@ function xml_parser_free(XMLParser $parser): bool {}
/** @param string|int $value */
function xml_parser_set_option(XMLParser $parser, int $option, $value): bool {}
/** @refcount 1 */
function xml_parser_get_option(XMLParser $parser, int $option): string|int {}
/**

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 9fbea7ff70c94733c7c68f2a8b9b33ab1b32b0a5 */
* Stub hash: 19ecc0e3b7a82f8b992a311788919154cdb28a5d */
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_xml_parser_create, 0, 0, XMLParser, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null")

View File

@@ -18,10 +18,16 @@ final class DeflateContext
{
}
/** @refcount 1 */
function ob_gzhandler(string $data, int $flags): string|false {}
/** @refcount 1 */
function zlib_get_coding_type(): string|false {}
/**
* @return array<int, string>|false
* @refcount 1
*/
function gzfile(string $filename, int $use_include_path = 0): array|false {}
/**
@@ -32,20 +38,28 @@ function gzopen(string $filename, string $mode, int $use_include_path = 0) {}
function readgzfile(string $filename, int $use_include_path = 0): int|false {}
/** @refcount 1 */
function zlib_encode(string $data, int $encoding, int $level = -1): string|false {}
/** @refcount 1 */
function zlib_decode(string $data, int $max_length = 0): string|false {}
/** @refcount 1 */
function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string|false {}
/** @refcount 1 */
function gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false {}
/** @refcount 1 */
function gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string|false {}
/** @refcount 1 */
function gzinflate(string $data, int $max_length = 0): string|false {}
/** @refcount 1 */
function gzdecode(string $data, int $max_length = 0): string|false {}
/** @refcount 1 */
function gzuncompress(string $data, int $max_length = 0): string|false {}
/**

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 89215fe1b85a38feee3926e25e9b8eac2365c4cb */
* Stub hash: 508af4dd8892e7d2e70d16f2365c21a0921922d8 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ob_gzhandler, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)