diff --git a/resources/php_compat_info.json b/resources/php_compat_info.json index e9c3145..0432cb7 100644 --- a/resources/php_compat_info.json +++ b/resources/php_compat_info.json @@ -1,64351 +1,64365 @@ { "@generated": true, "params": { "array_keys": [ "4.0.0", "4.0.0", "5.0.0" ], "array_slice": [ "4.0.0", "4.0.0", "4.0.0", "5.0.2" ], "assert": [ "4.0.0", "5.4.8" ], "class_exists": [ "4.0.0", "5.0.0" ], "clearstatcache": [ "5.3.0", "5.3.0" ], "copy": [ "4.0.0", "4.0.0", "5.3.0" ], "debug_backtrace": [ "4.3.0", "5.4.0" ], "debug_print_backtrace": [ "5.0.0", "5.4.0" ], "fgetss": [ "4.0.0", "4.0.0", "5.0.0" ], "file": [ "4.0.0", "4.0.0", "5.0.0" ], "file_get_contents": [ "4.3.0", "4.3.0", "4.3.0", "5.1.0", "5.1.0" ], "get_browser": [ "4.0.0", "4.3.2" ], "getopt": [ "4.3.0", "5.3.0" ], "gettimeofday": [ "5.1.0" ], "htmlentities": [ "4.0.0", "4.0.3", "4.1.0", "5.2.3" ], "htmlspecialchars": [ "4.0.0", "4.0.0", "4.1.0", "5.2.3" ], "idn_to_ascii": [ "5.2.4", "5.2.4", "5.4.0RC3", "5.4.0RC3" ], "idn_to_utf8": [ "5.2.4", "5.2.4", "5.4.0RC3", "5.4.0RC3" ], "ini_get_all": [ "4.2.0", "5.3.0" ], "is_a": [ "4.2.0", "4.2.0", "5.3.9" ], "jdtojewish": [ "4.0.0", "4.3.0", "5.0.0" ], "json_decode": [ "5.2.0", "5.2.0", "5.3.0", "5.4.0" ], "json_encode": [ "5.2.0", "5.3.0", "5.5.0" ], "ldap_read": [ "4.0.0", "4.0.0", "4.0.0", "4.0.0", "4.0.2", "4.0.2", "4.0.2", "4.0.2" ], "ldap_search": [ "4.0.0", "4.0.0", "4.0.0", "4.0.0", "4.0.2", "4.0.2", "4.0.2", "4.0.2" ], "md5": [ "4.0.0", "5.0.0" ], "md5_file": [ "4.2.0", "5.0.0" ], "memory_get_usage": [ "5.2.0" ], "microtime": [ "5.0.0" ], "mkdir": [ "4.0.0", "4.0.0", "5.0.0", "5.0.0" ], "nl2br": [ "4.0.0", "5.3.0" ], "opendir": [ "4.0.0", "5.3.0" ], "openssl_sign": [ "4.0.4", "4.0.4", "4.0.4", "5.0.0" ], "parse_url": [ "4.0.0", "5.1.2" ], "preg_replace": [ "4.0.0", "4.0.0", "4.0.0", "4.0.1", "5.1.0" ], "preg_replace_callback": [ "4.0.5", "4.0.5", "4.0.5", "4.0.5", "5.1.0" ], "scandir": [ "5.0.0", "5.4.0", "5.4.0" ], "sem_acquire": [ "4.0.0", "5.6.1RC1" ], "session_regenerate_id": [ "5.1.0" ], "sha1": [ "4.3.0", "5.0.0" ], "sha1_file": [ "4.3.0", "5.0.0" ], "sqlite_fetch_column_types": [ "5.0.0", "5.0.0", "5.1.0" ], "str_replace": [ "4.0.0", "4.0.0", "4.0.0", "5.0.0" ], "stream_copy_to_stream": [ "5.0.0", "5.0.0", "5.0.0", "5.1.0" ], "stream_get_contents": [ "5.0.0", "5.0.0", "5.1.0" ], "substr_count": [ "4.0.0", "4.0.0", "5.1.0", "5.1.0" ] }, "functions": { "_": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "__uopz_exit_overload": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "abs": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "acos": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "acosh": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "addcslashes": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "addslashes": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "apc_add": { "ext.name": "apc", "ext.min": "3.0.13", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_bin_dump": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_bin_dumpfile": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_bin_load": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_bin_loadfile": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_cache_info": { "ext.name": "apc", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "apc_cas": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_clear_cache": { "ext.name": "apc", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "apc_compile_file": { "ext.name": "apc", "ext.min": "3.0.13", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_dec": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_define_constants": { "ext.name": "apc", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_delete": { "ext.name": "apc", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_delete_file": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_exists": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_fetch": { "ext.name": "apc", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_inc": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "apc_load_constants": { "ext.name": "apc", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apc_sma_info": { "ext.name": "apc", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "apc_store": { "ext.name": "apc", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "apcu_add": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_bin_dump": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_bin_dumpfile": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_bin_load": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_bin_loadfile": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_cache_info": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_cas": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_clear_cache": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_dec": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_delete": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_enabled": { "ext.name": "apcu", "ext.min": "4.0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_exists": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_fetch": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_inc": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_key_info": { "ext.name": "apcu", "ext.min": "4.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_sma_info": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "apcu_store": { "ext.name": "apcu", "ext.min": "4.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "array_change_key_case": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "array_chunk": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "array_column": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "array_combine": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "array_count_values": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_diff": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "array_diff_assoc": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "array_diff_key": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "array_diff_uassoc": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "array_diff_ukey": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "array_fill": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "array_fill_keys": { "ext.name": "standard", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "array_filter": { "ext.name": "standard", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "array_flip": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_intersect": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "array_intersect_assoc": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "array_intersect_key": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "array_intersect_uassoc": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "array_intersect_ukey": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "array_key_exists": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "array_keys": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_map": { "ext.name": "standard", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "array_merge": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_merge_recursive": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "array_multisort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_pad": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_pop": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_product": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "array_push": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_rand": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_reduce": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "array_replace": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "array_replace_recursive": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "array_reverse": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_search": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "array_shift": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_slice": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_splice": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_sum": { "ext.name": "standard", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "array_udiff": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "array_udiff_assoc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_udiff_uassoc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_uintersect": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_uintersect_assoc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_uintersect_uassoc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_unique": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "array_unshift": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_values": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_walk": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "array_walk_recursive": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "arsort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "asin": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "asinh": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "asort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "assert": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "assert_options": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "atan": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "atan2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "atanh": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "base64_decode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "base64_encode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "base_convert": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "basename": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcadd": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bccomp": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcdiv": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcmod": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcmul": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcpow": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcpowmod": { "ext.name": "bcmath", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "bcscale": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcsqrt": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bcsub": { "ext.name": "bcmath", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bin2hex": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bind_textdomain_codeset": { "ext.name": "gettext", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "bindec": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "bindtextdomain": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "boolval": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "bson_decode": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "bson_encode": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "bzclose": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzcompress": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzdecompress": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzerrno": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzerror": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzerrstr": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzflush": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzopen": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzread": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "bzwrite": { "ext.name": "bz2", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "cal_days_in_month": { "ext.name": "calendar", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "cal_from_jd": { "ext.name": "calendar", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "cal_info": { "ext.name": "calendar", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "cal_to_jd": { "ext.name": "calendar", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "call_user_func": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "call_user_func_array": { "ext.name": "standard", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "call_user_method": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "call_user_method_array": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ceil": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chdir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "checkdate": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "checkdnsrr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chgrp": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chmod": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chop": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chown": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "chroot": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "chunk_split": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "class_alias": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "class_exists": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "class_implements": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "class_parents": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "class_uses": { "ext.name": "spl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "clearstatcache": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "cli_get_process_title": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "cli_set_process_title": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "closedir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "closelog": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "collator_asort": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_compare": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_get_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_get_error_code": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_get_error_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_get_locale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_get_sort_key": { "ext.name": "intl", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "collator_get_strength": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_set_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_set_strength": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_sort": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "collator_sort_with_sort_keys": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "compact": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "connection_aborted": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "connection_status": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "connection_timeout": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "4.0.4" }, "constant": { "ext.name": "standard", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "convert_cyr_string": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "convert_uudecode": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "convert_uuencode": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "copy": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "cos": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "cosh": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "count": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "count_chars": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "crc32": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "create_function": { "ext.name": "Core", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "crypt": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ctype_alnum": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_alpha": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_cntrl": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_digit": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_graph": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_lower": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_print": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_punct": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_space": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_upper": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ctype_xdigit": { "ext.name": "ctype", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "curl_close": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "curl_copy_handle": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_errno": { "ext.name": "curl", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "curl_error": { "ext.name": "curl", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "curl_escape": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_exec": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "curl_file_create": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_getinfo": { "ext.name": "curl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "curl_init": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "curl_multi_add_handle": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_close": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_exec": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_getcontent": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_info_read": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_init": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_remove_handle": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_select": { "ext.name": "curl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "curl_multi_setopt": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_multi_strerror": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_pause": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_reset": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_setopt": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "curl_setopt_array": { "ext.name": "curl", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "curl_share_close": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_share_init": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_share_setopt": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_strerror": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_unescape": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "curl_version": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "current": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "date": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "date_add": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_create": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_create_from_format": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_create_immutable": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "date_create_immutable_from_format": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "date_date_set": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_default_timezone_get": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "date_default_timezone_set": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "date_diff": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_format": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_get_last_errors": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_interval_create_from_date_string": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_interval_format": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_isodate_set": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_modify": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_offset_get": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_parse": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_parse_from_format": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_sub": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_sun_info": { "ext.name": "date", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "date_sunrise": { "ext.name": "date", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "date_sunset": { "ext.name": "date", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "date_time_set": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_timestamp_get": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_timestamp_set": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "date_timezone_get": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "date_timezone_set": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "datefmt_create": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_format": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_format_object": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "datefmt_get_calendar": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_calendar_object": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "datefmt_get_datetype": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_error_code": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_error_message": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_locale": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_pattern": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_timetype": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_get_timezone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "datefmt_get_timezone_id": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_is_lenient": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_localtime": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_parse": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_set_calendar": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_set_lenient": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_set_pattern": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "datefmt_set_timezone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "datefmt_set_timezone_id": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "dcgettext": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dcngettext": { "ext.name": "gettext", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "debug_backtrace": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "debug_print_backtrace": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "debug_zval_dump": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "decbin": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dechex": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "decoct": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "define": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "define_syslog_variables": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.3.29" }, "defined": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "deg2rad": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dgettext": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dirname": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "disk_free_space": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "disk_total_space": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "diskfreespace": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "dl": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "dngettext": { "ext.name": "gettext", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "dns_check_record": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "dns_get_mx": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "dns_get_record": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "dom_import_simplexml": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "doubleval": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "each": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "easter_date": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "easter_days": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "empty": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "enchant_broker_describe": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_dict_exists": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_free": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_free_dict": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_get_dict_path": { "ext.name": "enchant", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_get_error": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_init": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_list_dicts": { "ext.name": "enchant", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_request_dict": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_request_pwl_dict": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_set_dict_path": { "ext.name": "enchant", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_broker_set_ordering": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_add_to_personal": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_add_to_session": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_check": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_describe": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_get_error": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_is_in_session": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_quick_check": { "ext.name": "enchant", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_store_replacement": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "enchant_dict_suggest": { "ext.name": "enchant", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "end": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ereg": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ereg_replace": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "eregi": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "eregi_replace": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "error_get_last": { "ext.name": "standard", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "error_log": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "error_reporting": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "escapeshellarg": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "escapeshellcmd": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "event_add": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_free": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_loop": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_loopbreak": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_loopexit": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_new": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_priority_init": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_reinit": { "ext.name": "libevent", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_base_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_base_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_disable": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_enable": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_fd_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_free": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_new": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_priority_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_read": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_set_callback": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_timeout_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_watermark_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_buffer_write": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_del": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_free": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_new": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_priority_set": { "ext.name": "libevent", "ext.min": "0.0.5", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_timer_add": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_timer_del": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_timer_new": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_timer_pending": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "event_timer_set": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "exec": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "exif_imagetype": { "ext.name": "exif", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "exif_read_data": { "ext.name": "exif", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "exif_tagname": { "ext.name": "exif", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "exif_thumbnail": { "ext.name": "exif", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "exp": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "explode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "expm1": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "extension_loaded": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "extract": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ezmlm_hash": { "ext.name": "standard", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "fclose": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "feof": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fflush": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "fgetc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fgetcsv": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fgets": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fgetss": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "file": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "file_exists": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "file_get_contents": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "file_put_contents": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "fileatime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filectime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filegroup": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fileinode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filemtime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fileowner": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fileperms": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filesize": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filetype": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "filter_data": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": "0.10.0", "php.min": "4.0.0", "php.max": null }, "filter_has_var": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_id": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_input": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_input_array": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_list": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_var": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "filter_var_array": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "finfo_buffer": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "finfo_close": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "finfo_file": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "finfo_open": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "finfo_set_flags": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "floatval": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "flock": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "floor": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "flush": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fmod": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "fnmatch": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "fopen": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "forward_static_call": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "forward_static_call_array": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "fpassthru": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fprintf": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "fputcsv": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "fputs": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fread": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "frenchtojd": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fscanf": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "fseek": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fsockopen": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fstat": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftell": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftok": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ftp_alloc": { "ext.name": "ftp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ftp_cdup": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_chdir": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_chmod": { "ext.name": "ftp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ftp_close": { "ext.name": "ftp", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ftp_connect": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_delete": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_exec": { "ext.name": "ftp", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "ftp_fget": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_fput": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_get": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_get_option": { "ext.name": "ftp", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ftp_login": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_mdtm": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_mkdir": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_nb_continue": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_nb_fget": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_nb_fput": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_nb_get": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_nb_put": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_nlist": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_pasv": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_put": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_pwd": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_quit": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_raw": { "ext.name": "ftp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ftp_rawlist": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_rename": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_rmdir": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_set_option": { "ext.name": "ftp", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ftp_site": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_size": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftp_ssl_connect": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ftp_systype": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ftruncate": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "func_get_arg": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "func_get_args": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "func_num_args": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "function_exists": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "fwrite": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gc_collect_cycles": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "gc_disable": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "gc_enable": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "gc_enabled": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "gd_info": { "ext.name": "gd", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_asnum_by_name": { "ext.name": "geoip", "ext.min": "1.1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_continent_code_by_name": { "ext.name": "geoip", "ext.min": "1.0.3", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_country_code3_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_country_code_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_country_name_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_database_info": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_db_avail": { "ext.name": "geoip", "ext.min": "1.0.1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_db_filename": { "ext.name": "geoip", "ext.min": "1.0.1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_db_get_all_info": { "ext.name": "geoip", "ext.min": "1.0.1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_domain_by_name": { "ext.name": "geoip", "ext.min": "1.1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_id_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_isp_by_name": { "ext.name": "geoip", "ext.min": "1.0.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_netspeedcell_by_name": { "ext.name": "geoip", "ext.min": "1.1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_org_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_record_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_region_by_name": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_region_name_by_code": { "ext.name": "geoip", "ext.min": "1.0.5", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_setup_custom_directory": { "ext.name": "geoip", "ext.min": "1.1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "geoip_time_zone_by_country_and_region": { "ext.name": "geoip", "ext.min": "1.0.5", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "get_browser": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_called_class": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "get_cfg_var": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_class": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_class_methods": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_class_vars": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_current_user": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_declared_classes": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_declared_interfaces": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "get_declared_traits": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "get_defined_constants": { "ext.name": "Core", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "get_defined_functions": { "ext.name": "Core", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "get_defined_vars": { "ext.name": "Core", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "get_extension_funcs": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_headers": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "get_html_translation_table": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_include_path": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "get_included_files": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_loaded_extensions": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_magic_quotes_gpc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_magic_quotes_runtime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_meta_tags": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_object_vars": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_parent_class": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_required_files": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "get_resource_type": { "ext.name": "Core", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "getcwd": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getdate": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getenv": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gethostbyaddr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gethostbyname": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gethostbynamel": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gethostname": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getimagesize": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getimagesizefromstring": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "getlastmod": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getmxrr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getmygid": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "getmyinode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getmypid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getmyuid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getopt": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "getprotobyname": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getprotobynumber": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getrandmax": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getrusage": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getservbyname": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "getservbyport": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gettext": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gettimeofday": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gettype": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "glob": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "gmdate": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gmmktime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gmp_abs": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_add": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_and": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_clrbit": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_cmp": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_com": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_div": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_div_q": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_div_qr": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_div_r": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_divexact": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_export": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "gmp_fact": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_gcd": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_gcdext": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_hamdist": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_import": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "gmp_init": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_intval": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_invert": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_jacobi": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_legendre": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_mod": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_mul": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_neg": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_nextprime": { "ext.name": "gmp", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "gmp_or": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_perfect_square": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_popcount": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_pow": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_powm": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_prob_prime": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_random": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_random_bits": { "ext.name": "gmp", "ext.min": "5.6.3RC1", "ext.max": null, "php.min": "5.6.3RC1", "php.max": null }, "gmp_random_range": { "ext.name": "gmp", "ext.min": "5.6.3RC1", "ext.max": null, "php.min": "5.6.3RC1", "php.max": null }, "gmp_root": { "ext.name": "gmp", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "gmp_rootrem": { "ext.name": "gmp", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "gmp_scan0": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_scan1": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_setbit": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_sign": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_sqrt": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_sqrtrem": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_strval": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_sub": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmp_testbit": { "ext.name": "gmp", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "gmp_xor": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gmstrftime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "grapheme_extract": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_stripos": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_stristr": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_strlen": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_strpos": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_strripos": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_strrpos": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_strstr": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "grapheme_substr": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "gregoriantojd": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzclose": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzcompress": { "ext.name": "zlib", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "gzdecode": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "gzdeflate": { "ext.name": "zlib", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gzencode": { "ext.name": "zlib", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gzeof": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzfile": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzgetc": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzgets": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzgetss": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzinflate": { "ext.name": "zlib", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "gzopen": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzpassthru": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzputs": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzread": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzrewind": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzseek": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gztell": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "gzuncompress": { "ext.name": "zlib", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "gzwrite": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_algos": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_copy": { "ext.name": "hash", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "hash_equals": { "ext.name": "hash", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "hash_file": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_final": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_hmac": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_hmac_file": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_init": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_pbkdf2": { "ext.name": "hash", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "hash_update": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_update_file": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hash_update_stream": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "header": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "header_register_callback": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "header_remove": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "headers_list": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "headers_sent": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hebrev": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hebrevc": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "hex2bin": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "hexdec": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "highlight_file": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "highlight_string": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "html_entity_decode": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "htmlentities": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "htmlspecialchars": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "htmlspecialchars_decode": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "http_build_cookie": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_build_query": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "http_build_str": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_build_url": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_cache_etag": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_cache_last_modified": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_chunked_decode": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_date": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_deflate": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_get": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_get_request_body": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_get_request_body_stream": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_get_request_headers": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_head": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_inflate": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_match_etag": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_match_modified": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_match_request_header": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_negotiate": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_negotiate_charset": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_negotiate_content_type": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_negotiate_language": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_parse_cookie": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_parse_headers": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_parse_message": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_parse_params": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_persistent_handles_clean": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_persistent_handles_count": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_persistent_handles_ident": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_post_data": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_post_fields": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_put_data": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_put_file": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_put_stream": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_redirect": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request_body_encode": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request_method_exists": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request_method_name": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request_method_register": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_request_method_unregister": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_response_code": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "http_send_content_disposition": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_content_type": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_data": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_file": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_last_modified": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_status": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_send_stream": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_support": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "http_throttle": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "hypot": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "iconv": { "ext.name": "iconv", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "iconv_get_encoding": { "ext.name": "iconv", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "iconv_mime_decode": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_mime_decode_headers": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_mime_encode": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_set_encoding": { "ext.name": "iconv", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "iconv_strlen": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_strpos": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_strrpos": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "iconv_substr": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "idate": { "ext.name": "date", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "idn_to_ascii": { "ext.name": "intl", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "idn_to_utf8": { "ext.name": "intl", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "igbinary_serialize": { "ext.name": "igbinary", "ext.min": "1.1.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "igbinary_unserialize": { "ext.name": "igbinary", "ext.min": "1.1.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ignore_user_abort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "image2wbmp": { "ext.name": "gd", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "image_type_to_extension": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "image_type_to_mime_type": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageaffine": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imageaffinematrixconcat": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imageaffinematrixget": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagealphablending": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imageantialias": { "ext.name": "gd", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "imagearc": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagechar": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecharup": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorallocate": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorallocatealpha": { "ext.name": "gd", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "imagecolorat": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorclosest": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorclosestalpha": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecolorclosesthwb": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagecolordeallocate": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorexact": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorexactalpha": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecolormatch": { "ext.name": "gd", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "imagecolorresolve": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorresolvealpha": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecolorset": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorsforindex": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolorstotal": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecolortransparent": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageconvolution": { "ext.name": "gd", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "imagecopy": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecopymerge": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagecopymergegray": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecopyresampled": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecopyresized": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecreate": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecreatefromgd": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagecreatefromgd2": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagecreatefromgd2part": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagecreatefromgif": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecreatefromjpeg": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecreatefrompng": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagecreatefromstring": { "ext.name": "gd", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "imagecreatefromwbmp": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagecreatefromwebp": { "ext.name": "gd", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "imagecreatefromxbm": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagecreatefromxpm": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagecreatetruecolor": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagecrop": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagecropauto": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagedashedline": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagedestroy": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageellipse": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagefill": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagefilledarc": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagefilledellipse": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagefilledpolygon": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagefilledrectangle": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagefilltoborder": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagefilter": { "ext.name": "gd", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "imageflip": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagefontheight": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagefontwidth": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageftbbox": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagefttext": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagegammacorrect": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagegd": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagegd2": { "ext.name": "gd", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imagegif": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagegrabscreen": { "ext.name": "gd", "ext.min": "5.2.2", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "imagegrabwindow": { "ext.name": "gd", "ext.min": "5.2.2", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "imageinterlace": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageistruecolor": { "ext.name": "gd", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "imagejpeg": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagelayereffect": { "ext.name": "gd", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "imageline": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imageloadfont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepalettecopy": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagepalettetotruecolor": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagepng": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepolygon": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsbbox": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsencodefont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsextendfont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsfreefont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsloadfont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepsslantfont": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagepstext": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagerectangle": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagerotate": { "ext.name": "gd", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "imagesavealpha": { "ext.name": "gd", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "imagescale": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagesetbrush": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagesetinterpolation": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "imagesetpixel": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagesetstyle": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagesetthickness": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagesettile": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagestring": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagestringup": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagesx": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagesy": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagetruecolortopalette": { "ext.name": "gd", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "imagettfbbox": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagettftext": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imagetypes": { "ext.name": "gd", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "imagewbmp": { "ext.name": "gd", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "imagewebp": { "ext.name": "gd", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "imagexbm": { "ext.name": "gd", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "imap_8bit": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_alerts": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_append": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_base64": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_binary": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_body": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_bodystruct": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_check": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_clearflag_full": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_close": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_create": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_createmailbox": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_delete": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_deletemailbox": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_errors": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_expunge": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_fetch_overview": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_fetchbody": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_fetchheader": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_fetchmime": { "ext.name": "imap", "ext.min": "5.3.6", "ext.max": null, "php.min": "5.3.6", "php.max": null }, "imap_fetchstructure": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_fetchtext": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_gc": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "imap_get_quota": { "ext.name": "imap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "imap_get_quotaroot": { "ext.name": "imap", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "imap_getacl": { "ext.name": "imap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "imap_getmailboxes": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_getsubscribed": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_header": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_headerinfo": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_headers": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_last_error": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_list": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_listmailbox": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_listscan": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_listsubscribed": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_lsub": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mail": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mail_compose": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mail_copy": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mail_move": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mailboxmsginfo": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mime_header_decode": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_msgno": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_mutf7_to_utf8": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "imap_num_msg": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_num_recent": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_open": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_ping": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_qprint": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_rename": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_renamemailbox": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_reopen": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_rfc822_parse_adrlist": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_rfc822_parse_headers": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_rfc822_write_address": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_savebody": { "ext.name": "imap", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "imap_scan": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_scanmailbox": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_search": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_set_quota": { "ext.name": "imap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "imap_setacl": { "ext.name": "imap", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imap_setflag_full": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_sort": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_status": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_subscribe": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_thread": { "ext.name": "imap", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "imap_timeout": { "ext.name": "imap", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "imap_uid": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_undelete": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_unsubscribe": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_utf7_decode": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_utf7_encode": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_utf8": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "imap_utf8_to_mutf7": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "implode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "import_request_variables": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": "5.3.29" }, "in_array": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "inclued_get_data": { "ext.name": "inclued", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "inet_ntop": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "inet_pton": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ini_alter": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ini_get": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ini_get_all": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ini_restore": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ini_set": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "input_filters_list": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": "0.10.0", "php.min": "4.0.0", "php.max": null }, "input_get": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": "0.10.0", "php.min": "4.0.0", "php.max": null }, "input_get_args": { "ext.name": "filter", "ext.min": "0.10.0", "ext.max": "0.10.0", "php.min": "5.0.0", "php.max": null }, "input_has_variable": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": "0.10.0", "php.min": "4.0.0", "php.max": null }, "input_name_to_filter": { "ext.name": "filter", "ext.min": "0.9.2", "ext.max": "0.10.0", "php.min": "4.0.0", "php.max": null }, "interface_exists": { "ext.name": "Core", "ext.min": "5.0.2", "ext.max": null, "php.min": "5.0.2", "php.max": null }, "intl_error_name": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "intl_get_error_code": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "intl_get_error_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "intl_is_failure": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "intlcal_add": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_after": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_before": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_clear": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_create_instance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_equals": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_field_difference": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_from_date_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_actual_maximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_actual_minimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_available_locales": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_day_of_week_type": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_error_code": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_error_message": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_first_day_of_week": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_greatest_minimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_keyword_values_for_locale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_least_maximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_locale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_maximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_minimal_days_in_first_week": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_minimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_now": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_repeated_wall_time_option": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_skipped_wall_time_option": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_time_zone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_type": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_get_weekend_transition": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_in_daylight_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_is_equivalent_to": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_is_lenient": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_is_set": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_is_weekend": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_roll": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_first_day_of_week": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_lenient": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_minimal_days_in_first_week": { "ext.name": "intl", "ext.min": "5.5.1", "ext.max": null, "php.min": "5.5.1", "php.max": null }, "intlcal_set_repeated_wall_time_option": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_skipped_wall_time_option": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_set_time_zone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlcal_to_date_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlgregcal_create_instance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlgregcal_get_gregorian_change": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlgregcal_is_leap_year": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intlgregcal_set_gregorian_change": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_count_equivalent_ids": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_create_default": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_create_enumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_create_time_zone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_create_time_zone_id_enumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_from_date_time_zone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_canonical_id": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_display_name": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_dst_savings": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_equivalent_id": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_error_code": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_error_message": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_gmt": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_id": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_offset": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_raw_offset": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_region": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_tz_data_version": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_get_unknown": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_has_same_rules": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_to_date_time_zone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intltz_use_daylight_time": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "intval": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ip2long": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "iptcembed": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "iptcparse": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_a": { "ext.name": "Core", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "is_array": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_bool": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_callable": { "ext.name": "standard", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "is_dir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_double": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_executable": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_file": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_finite": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "is_float": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_infinite": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "is_int": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_integer": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_link": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_long": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_nan": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "is_null": { "ext.name": "standard", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "is_numeric": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_object": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_readable": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_real": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_resource": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_scalar": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "is_soap_fault": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "is_string": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_subclass_of": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_uploaded_file": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "is_writable": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "is_writeable": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "isset": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "iterator_apply": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "iterator_count": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "iterator_to_array": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "jddayofweek": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdmonthname": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdtofrench": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdtogregorian": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdtojewish": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdtojulian": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jdtounix": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jewishtojd": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "join": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "jpeg2wbmp": { "ext.name": "gd", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "jsmin": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "jsmin_last_error": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "jsmin_last_error_msg": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "json_decode": { "ext.name": "json", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "json_encode": { "ext.name": "json", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "json_last_error": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "json_last_error_msg": { "ext.name": "json", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "juliantojd": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "key": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "key_exists": { "ext.name": "standard", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "krsort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ksort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lcfirst": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lcg_value": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lchgrp": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "lchown": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ldap_add": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_bind": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_close": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_compare": { "ext.name": "ldap", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "ldap_connect": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_control_paged_result": { "ext.name": "ldap", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ldap_control_paged_result_response": { "ext.name": "ldap", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ldap_count_entries": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_delete": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_dn2ufn": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_err2str": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_errno": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_error": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_escape": { "ext.name": "ldap", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "ldap_explode_dn": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_first_attribute": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_first_entry": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_first_reference": { "ext.name": "ldap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ldap_free_result": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_get_attributes": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_get_dn": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_get_entries": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_get_option": { "ext.name": "ldap", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ldap_get_values": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_get_values_len": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_list": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_mod_add": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_mod_del": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_mod_replace": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_modify": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_modify_batch": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "ldap_next_attribute": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_next_entry": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_next_reference": { "ext.name": "ldap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ldap_parse_reference": { "ext.name": "ldap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ldap_parse_result": { "ext.name": "ldap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ldap_read": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_rename": { "ext.name": "ldap", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "ldap_sasl_bind": { "ext.name": "ldap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ldap_search": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ldap_set_option": { "ext.name": "ldap", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ldap_set_rebind_proc": { "ext.name": "ldap", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ldap_sort": { "ext.name": "ldap", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ldap_start_tls": { "ext.name": "ldap", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ldap_unbind": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "levenshtein": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "libxml_clear_errors": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "libxml_disable_entity_loader": { "ext.name": "libxml", "ext.min": "5.2.11", "ext.max": null, "php.min": "5.2.11", "php.max": null }, "libxml_get_errors": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "libxml_get_last_error": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "libxml_set_external_entity_loader": { "ext.name": "libxml", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "libxml_set_streams_context": { "ext.name": "libxml", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "libxml_use_internal_errors": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "link": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "linkinfo": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "list": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "locale_accept_from_http": { "ext.name": "intl", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "locale_canonicalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_compose": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_filter_matches": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_all_variants": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_default": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_display_language": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_display_name": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_display_region": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_display_script": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_display_variant": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_keywords": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_primary_language": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_region": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_get_script": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_lookup": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_parse": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locale_set_default": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "localeconv": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "localtime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "log": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "log10": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "log1p": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "long2ip": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lstat": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ltrim": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lzf_compress": { "ext.name": "lzf", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lzf_decompress": { "ext.name": "lzf", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "lzf_optimized_for": { "ext.name": "lzf", "ext.min": "1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "magic_quotes_runtime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mail": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mailparse_determine_best_xfer_encoding": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_create": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_extract_part": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_extract_part_file": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_extract_whole_part_file": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_free": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_get_part": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_get_part_data": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_get_structure": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_parse": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_msg_parse_file": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_rfc822_parse_addresses": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_stream_encode": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_test": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mailparse_uudecode_all": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "max": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mb_check_encoding": { "ext.name": "mbstring", "ext.min": "4.4.3", "ext.max": null, "php.min": "4.4.3", "php.max": null }, "mb_convert_case": { "ext.name": "mbstring", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mb_convert_encoding": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_convert_kana": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_convert_variables": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_decode_mimeheader": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_decode_numericentity": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_detect_encoding": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_detect_order": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_encode_mimeheader": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_encode_numericentity": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_encoding_aliases": { "ext.name": "mbstring", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "mb_ereg": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_match": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_replace": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_replace_callback": { "ext.name": "mbstring", "ext.min": "5.4.1", "ext.max": null, "php.min": "5.4.1", "php.max": null }, "mb_ereg_search": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_getpos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_getregs": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_init": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_pos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_regs": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_ereg_search_setpos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_eregi": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_eregi_replace": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_get_info": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_http_input": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_http_output": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_internal_encoding": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_language": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_list_encodings": { "ext.name": "mbstring", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mb_output_handler": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_parse_str": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_preferred_mime_name": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_regex_encoding": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_regex_set_options": { "ext.name": "mbstring", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mb_send_mail": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_split": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mb_strcut": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_strimwidth": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_stripos": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_stristr": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_strlen": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_strpos": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_strrchr": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_strrichr": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_strripos": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_strrpos": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_strstr": { "ext.name": "mbstring", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mb_strtolower": { "ext.name": "mbstring", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mb_strtoupper": { "ext.name": "mbstring", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mb_strwidth": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_substitute_character": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_substr": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mb_substr_count": { "ext.name": "mbstring", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mbereg": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_match": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_replace": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_getpos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_getregs": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_init": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_pos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_regs": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbereg_search_setpos": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mberegi": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mberegi_replace": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbregex_encoding": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mbsplit": { "ext.name": "mbstring", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mcrypt_cbc": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_cfb": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_create_iv": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_decrypt": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_ecb": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_enc_get_algorithms_name": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_get_block_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_get_iv_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_get_key_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_get_modes_name": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_get_supported_key_sizes": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_is_block_algorithm": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_is_block_algorithm_mode": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_is_block_mode": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_enc_self_test": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_encrypt": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_generic": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_generic_deinit": { "ext.name": "mcrypt", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "mcrypt_generic_end": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_generic_init": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_get_block_size": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_get_cipher_name": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_get_iv_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_get_key_size": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mcrypt_list_algorithms": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_list_modes": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_close": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_get_algo_block_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_get_algo_key_size": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_get_supported_key_sizes": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_is_block_algorithm": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_is_block_algorithm_mode": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_is_block_mode": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_open": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_module_self_test": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "mcrypt_ofb": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "md5": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "md5_file": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mdecrypt_generic": { "ext.name": "mcrypt", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "memcache_add": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_add_server": { "ext.name": "memcache", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_append": { "ext.name": "memcache", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "memcache_cas": { "ext.name": "memcache", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "memcache_close": { "ext.name": "memcache", "ext.min": "0.4", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_connect": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_debug": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_decrement": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_delete": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_flush": { "ext.name": "memcache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_get": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_get_extended_stats": { "ext.name": "memcache", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_get_server_status": { "ext.name": "memcache", "ext.min": "2.1.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_get_stats": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_get_version": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_increment": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_pconnect": { "ext.name": "memcache", "ext.min": "0.4", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_prepend": { "ext.name": "memcache", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "memcache_replace": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_set": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_set_compress_threshold": { "ext.name": "memcache", "ext.min": "2.0.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memcache_set_failure_callback": { "ext.name": "memcache", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "memcache_set_server_params": { "ext.name": "memcache", "ext.min": "2.1.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "memory_get_peak_usage": { "ext.name": "standard", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "memory_get_usage": { "ext.name": "standard", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "metaphone": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "method_exists": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mhash": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mhash_count": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mhash_get_block_size": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mhash_get_hash_name": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mhash_keygen_s2k": { "ext.name": "mhash", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "microtime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mime_content_type": { "ext.name": "fileinfo", "ext.min": "1.0.5-dev", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "min": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mkdir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mktime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "money_format": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "move_uploaded_file": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "msg_get_queue": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msg_queue_exists": { "ext.name": "sysvmsg", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "msg_receive": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msg_remove_queue": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msg_send": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msg_set_queue": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msg_stat_queue": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "msgfmt_create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_format": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_format_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_get_error_code": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_get_error_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_get_locale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_get_pattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_parse": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_parse_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgfmt_set_pattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msgpack_pack": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "msgpack_serialize": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "msgpack_unpack": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "msgpack_unserialize": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mssql_bind": { "ext.name": "mssql", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "mssql_close": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_connect": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_data_seek": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_execute": { "ext.name": "mssql", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "mssql_fetch_array": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_fetch_assoc": { "ext.name": "mssql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "mssql_fetch_batch": { "ext.name": "mssql", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "mssql_fetch_field": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_fetch_object": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_fetch_row": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_field_length": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_field_name": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_field_seek": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_field_type": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_free_result": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_free_statement": { "ext.name": "mssql", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "mssql_get_last_message": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_guid_string": { "ext.name": "mssql", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "mssql_init": { "ext.name": "mssql", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "mssql_min_error_severity": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_min_message_severity": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_next_result": { "ext.name": "mssql", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "mssql_num_fields": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_num_rows": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_pconnect": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_query": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_result": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mssql_rows_affected": { "ext.name": "mssql", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "mssql_select_db": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mt_getrandmax": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mt_rand": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mt_srand": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_affected_rows": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_client_encoding": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_close": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_connect": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_create_db": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_data_seek": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_db_name": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_db_query": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_dbname": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_drop_db": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_errno": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_error": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_escape_string": { "ext.name": "mysql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "mysql_fetch_array": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fetch_assoc": { "ext.name": "mysql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "mysql_fetch_field": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fetch_lengths": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fetch_object": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fetch_row": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_flags": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_len": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_name": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_seek": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_table": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_field_type": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fieldflags": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fieldlen": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fieldname": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fieldtable": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_fieldtype": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_free_result": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_freeresult": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_get_client_info": { "ext.name": "mysql", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "mysql_get_host_info": { "ext.name": "mysql", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "mysql_get_proto_info": { "ext.name": "mysql", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "mysql_get_server_info": { "ext.name": "mysql", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "mysql_info": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_insert_id": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_list_dbs": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_list_fields": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_list_processes": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_list_tables": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_listdbs": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_listfields": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_listtables": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_num_fields": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_num_rows": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_numfields": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_numrows": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_pconnect": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_ping": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_query": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_real_escape_string": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_result": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_select_db": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_selectdb": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_set_charset": { "ext.name": "mysql", "ext.min": "5.2.3", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "mysql_stat": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_table_name": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_tablename": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "mysql_thread_id": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysql_unbuffered_query": { "ext.name": "mysql", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "mysqli_affected_rows": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_autocommit": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_begin_transaction": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "mysqli_bind_param": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_bind_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_change_user": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_character_set_name": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_client_encoding": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_close": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_commit": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_connect": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_connect_errno": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_connect_error": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_data_seek": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_debug": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_disable_reads_from_master": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_disable_rpl_parse": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_dump_debug_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_embedded_server_end": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_embedded_server_start": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_enable_reads_from_master": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_enable_rpl_parse": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_errno": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_error": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_error_list": { "ext.name": "mysqli", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "mysqli_escape_string": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_execute": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_fetch_all": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_array": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_assoc": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_field": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_field_direct": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_fields": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_lengths": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_object": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_fetch_row": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_field_count": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_field_seek": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_field_tell": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_free_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_cache_stats": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_charset": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_client_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_client_stats": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_client_version": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_connection_stats": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_host_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_links_stats": { "ext.name": "mysqli", "ext.min": "5.6.0alpha2", "ext.max": null, "php.min": "5.6.0alpha2", "php.max": null }, "mysqli_get_metadata": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_get_proto_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_server_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_server_version": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_get_warnings": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_info": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_init": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_insert_id": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_kill": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_master_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_more_results": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_multi_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_next_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_num_fields": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_num_rows": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_options": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_param_count": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_ping": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_poll": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_prepare": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_real_connect": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_real_escape_string": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_real_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_reap_async_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_refresh": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "mysqli_release_savepoint": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "mysqli_report": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_rollback": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_rpl_parse_enabled": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_rpl_probe": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_rpl_query_type": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_savepoint": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "mysqli_select_db": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_send_long_data": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "mysqli_send_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_set_charset": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_set_local_infile_default": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_set_local_infile_handler": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_set_opt": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_slave_query": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "mysqli_sqlstate": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_ssl_set": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stat": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_affected_rows": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_attr_get": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_attr_set": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_bind_param": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_bind_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_close": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_data_seek": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_errno": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_error": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_error_list": { "ext.name": "mysqli", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "mysqli_stmt_execute": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_fetch": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_field_count": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_free_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_get_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_get_warnings": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_init": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_insert_id": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_more_results": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_next_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_num_rows": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_param_count": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_prepare": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_reset": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_result_metadata": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_send_long_data": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_sqlstate": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt_store_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_store_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_thread_id": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_thread_safe": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_use_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_warning_count": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "natcasesort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "natsort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "next": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ngettext": { "ext.name": "gettext", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "nl2br": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "nl_langinfo": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "normalizer_is_normalized": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "normalizer_normalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "number_format": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "numfmt_create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_format": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_format_currency": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_error_code": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_error_message": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_locale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_pattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_symbol": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_get_text_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_parse": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_parse_currency": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_set_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_set_pattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_set_symbol": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "numfmt_set_text_attribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "oauth_get_sbs": { "ext.name": "OAuth", "ext.min": "0.99.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "oauth_urlencode": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ob_clean": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ob_deflatehandler": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "ob_end_clean": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ob_end_flush": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ob_etaghandler": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "ob_flush": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ob_get_clean": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ob_get_contents": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ob_get_flush": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ob_get_length": { "ext.name": "standard", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "ob_get_level": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ob_get_status": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "ob_gzhandler": { "ext.name": "zlib", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "ob_iconv_handler": { "ext.name": "iconv", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": "5.3.29" }, "ob_implicit_flush": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ob_inflatehandler": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "ob_list_handlers": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ob_start": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ob_tidyhandler": { "ext.name": "tidy", "ext.min": "2.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.3.29" }, "octdec": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_autocommit": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_binmode": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_close": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_close_all": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_columnprivileges": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_columns": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_commit": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_connect": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_cursor": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_data_source": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_do": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_error": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_errormsg": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_exec": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_execute": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_fetch_array": { "ext.name": "odbc", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "odbc_fetch_into": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_fetch_object": { "ext.name": "odbc", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "odbc_fetch_row": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_len": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_name": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_num": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_precision": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_scale": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_field_type": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_foreignkeys": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_free_result": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_gettypeinfo": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_longreadlen": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_next_result": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_num_fields": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_num_rows": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_pconnect": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_prepare": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_primarykeys": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_procedurecolumns": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_procedures": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_result": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_result_all": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_rollback": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_setoption": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_specialcolumns": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_statistics": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_tableprivileges": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "odbc_tables": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "opcache_compile_file": { "ext.name": "Zend OPcache", "ext.min": "7.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opcache_get_configuration": { "ext.name": "Zend OPcache", "ext.min": "7.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opcache_get_status": { "ext.name": "Zend OPcache", "ext.min": "7.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opcache_invalidate": { "ext.name": "Zend OPcache", "ext.min": "7.0.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opcache_is_script_cached": { "ext.name": "Zend OPcache", "ext.min": "7.0.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opcache_reset": { "ext.name": "Zend OPcache", "ext.min": "7.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "opendir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "openlog": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "openssl_cipher_iv_length": { "ext.name": "openssl", "ext.min": "5.3.3", "ext.max": null, "php.min": "5.3.3", "php.max": null }, "openssl_csr_export": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_csr_export_to_file": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_csr_get_public_key": { "ext.name": "openssl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "openssl_csr_get_subject": { "ext.name": "openssl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "openssl_csr_new": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_csr_sign": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_decrypt": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_dh_compute_key": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_digest": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_encrypt": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_error_string": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_free_key": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_get_cert_locations": { "ext.name": "openssl", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "openssl_get_cipher_methods": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_get_md_methods": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_get_privatekey": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_get_publickey": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_open": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_pbkdf2": { "ext.name": "openssl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "openssl_pkcs12_export": { "ext.name": "openssl", "ext.min": "5.2.2", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "openssl_pkcs12_export_to_file": { "ext.name": "openssl", "ext.min": "5.2.2", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "openssl_pkcs12_read": { "ext.name": "openssl", "ext.min": "5.2.2", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "openssl_pkcs7_decrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_pkcs7_encrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_pkcs7_sign": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_pkcs7_verify": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_pkey_export": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_pkey_export_to_file": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_pkey_free": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_pkey_get_details": { "ext.name": "openssl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "openssl_pkey_get_private": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_pkey_get_public": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_pkey_new": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_private_decrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_private_encrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_public_decrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_public_encrypt": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_random_pseudo_bytes": { "ext.name": "openssl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "openssl_seal": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_sign": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_spki_export": { "ext.name": "openssl", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "openssl_spki_export_challenge": { "ext.name": "openssl", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "openssl_spki_new": { "ext.name": "openssl", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "openssl_spki_verify": { "ext.name": "openssl", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "openssl_verify": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "openssl_x509_check_private_key": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_x509_checkpurpose": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_x509_export": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_x509_export_to_file": { "ext.name": "openssl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "openssl_x509_fingerprint": { "ext.name": "openssl", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "openssl_x509_free": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_x509_parse": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "openssl_x509_read": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "ord": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "output_add_rewrite_var": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "output_reset_rewrite_vars": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pack": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "parse_ini_file": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "parse_ini_string": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "parse_str": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "parse_url": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "passthru": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "password_get_info": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "password_hash": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "password_needs_rehash": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "password_verify": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "pathinfo": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pclose": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pcntl_alarm": { "ext.name": "pcntl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pcntl_errno": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "pcntl_exec": { "ext.name": "pcntl", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pcntl_fork": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_get_last_error": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "pcntl_getpriority": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "pcntl_setpriority": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "pcntl_signal": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_signal_dispatch": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pcntl_sigprocmask": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pcntl_sigtimedwait": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pcntl_sigwaitinfo": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pcntl_strerror": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "pcntl_wait": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "pcntl_waitpid": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wexitstatus": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wifexited": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wifsignaled": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wifstopped": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wstopsig": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pcntl_wtermsig": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "pdf_activate_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_bookmark": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_launchlink": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_locallink": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_nameddest": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_note": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_path_point": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_pdflink": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_portfolio_file": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_portfolio_folder": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_table_cell": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_textflow": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_thumbnail": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_add_weblink": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_align": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_arc": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_arcn": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_attach_file": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_dpart": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_glyph": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_glyph_ext": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_mc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_page_ext": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_pattern_ext": { "ext.name": "pdflib", "ext.min": "3.0.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_template": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_begin_template_ext": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_circle": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_circular_arc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_clip": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_font": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_pdi_document": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_close_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_closepath": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_closepath_fill_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_closepath_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_concat": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_continue_text": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_convert_to_unicode": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_3dview": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_action": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_annotation": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_bookmark": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_field": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_fieldgroup": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_gstate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_pvf": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_create_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_curveto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_define_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_delete": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_delete_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_delete_pvf": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_delete_table": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_delete_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_draw_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_ellipse": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_elliptical_arc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_encoding_set_char": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_dpart": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_glyph": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_mc": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_page_ext": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_template": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_end_template_ext": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_endpath": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill_graphicsblock": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill_imageblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill_pdfblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fill_textblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_findfont": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_table": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_fit_textline": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_apiname": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_buffer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_errmsg": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_errnum": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_pdi_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_pdi_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_string": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_get_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_font": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_image": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_matchbox": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_pdi_page": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_pvf": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_table": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_info_textline": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_initgraphics": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_lineto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_3ddata": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_asset": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_iccprofile": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_load_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_makespotcolor": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_mc_point": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_moveto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_new": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_ccitt": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_file": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_image_file": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_pdi_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_open_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_pcos_get_number": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_pcos_get_stream": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_pcos_get_string": { "ext.name": "pdflib", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_place_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_place_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_poca_delete": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_poca_insert": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_poca_new": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_poca_remove": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_process_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_rect": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_restore": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_resume_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_rotate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_save": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_scale": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_border_color": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_border_dash": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_border_style": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_graphics_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_gstate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_info": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_layer_dependency": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_text_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_text_pos": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_set_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setcolor": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setdash": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setdashpattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setflat": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setfont": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setgray": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setgray_fill": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setgray_stroke": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setlinecap": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setlinejoin": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setlinewidth": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setmatrix": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setmiterlimit": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setpolydash": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setrgbcolor": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setrgbcolor_fill": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_setrgbcolor_stroke": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_shading": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_shading_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_shfill": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_show": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_show_boxed": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_show_xy": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_skew": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_stringwidth": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_suspend_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_translate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf16_to_utf32": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf16_to_utf8": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf32_to_utf16": { "ext.name": "pdflib", "ext.min": "2.1.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf32_to_utf8": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf8_to_utf16": { "ext.name": "pdflib", "ext.min": "2.0.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdf_utf8_to_utf32": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdo_drivers": { "ext.name": "PDO", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pfsockopen": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_affected_rows": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_cancel_query": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_client_encoding": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_clientencoding": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_close": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_cmdtuples": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_connect": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_connect_poll": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "pg_connection_busy": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_connection_reset": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_connection_status": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_consume_input": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "pg_convert": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_copy_from": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_copy_to": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_dbname": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_delete": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_end_copy": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_errormessage": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_escape_bytea": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_escape_identifier": { "ext.name": "pgsql", "ext.min": "5.4.4", "ext.max": null, "php.min": "5.4.4", "php.max": null }, "pg_escape_literal": { "ext.name": "pgsql", "ext.min": "5.4.4", "ext.max": null, "php.min": "5.4.4", "php.max": null }, "pg_escape_string": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_exec": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_execute": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_fetch_all": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_fetch_all_columns": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_fetch_array": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_fetch_assoc": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_fetch_object": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_fetch_result": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fetch_row": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_field_is_null": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_name": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_num": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_prtlen": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_size": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_table": { "ext.name": "pgsql", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pg_field_type": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_field_type_oid": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_fieldisnull": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fieldname": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fieldnum": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fieldprtlen": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fieldsize": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_fieldtype": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_flush": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "pg_free_result": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_freeresult": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_get_notify": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_get_pid": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_get_result": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_getlastoid": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_host": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_insert": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_last_error": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_last_notice": { "ext.name": "pgsql", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "pg_last_oid": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_close": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_create": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_export": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_import": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_open": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_read": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_read_all": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_seek": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_tell": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_truncate": { "ext.name": "pgsql", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "pg_lo_unlink": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lo_write": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loclose": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_locreate": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loexport": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loimport": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loopen": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loread": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_loreadall": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lounlink": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_lowrite": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_meta_data": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_num_fields": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_num_rows": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_numfields": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_numrows": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_options": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_parameter_status": { "ext.name": "pgsql", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "pg_pconnect": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_ping": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_port": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_prepare": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_put_line": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_query": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_query_params": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_result": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_result_error": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_result_error_field": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_result_seek": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_result_status": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_select": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_send_execute": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_send_prepare": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_send_query": { "ext.name": "pgsql", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "pg_send_query_params": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_set_client_encoding": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_set_error_verbosity": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_setclientencoding": { "ext.name": "pgsql", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "pg_socket": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "pg_trace": { "ext.name": "pgsql", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "pg_transaction_status": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "pg_tty": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pg_unescape_bytea": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_untrace": { "ext.name": "pgsql", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "pg_update": { "ext.name": "pgsql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "pg_version": { "ext.name": "pgsql", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "php_check_syntax": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.0.4" }, "php_egg_logo_guid": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": "5.4.45" }, "php_ini_loaded_file": { "ext.name": "standard", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "php_ini_scanned_files": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "php_logo_guid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.4.45" }, "php_real_logo_guid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.4.45" }, "php_sapi_name": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "php_strip_whitespace": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "php_uname": { "ext.name": "standard", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "phpcredits": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "phpinfo": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "phpversion": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pi": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "png2wbmp": { "ext.name": "gd", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "popen": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pos": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_access": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "posix_ctermid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_errno": { "ext.name": "posix", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "posix_get_last_error": { "ext.name": "posix", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "posix_getcwd": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getegid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_geteuid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getgid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getgrgid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getgrnam": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getgroups": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getlogin": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getpgid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getpgrp": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getpid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getppid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getpwnam": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getpwuid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getrlimit": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getsid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_getuid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_initgroups": { "ext.name": "posix", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "posix_isatty": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_kill": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_mkfifo": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_mknod": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "posix_setegid": { "ext.name": "posix", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "posix_seteuid": { "ext.name": "posix", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "posix_setgid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_setpgid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_setsid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_setuid": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_strerror": { "ext.name": "posix", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "posix_times": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_ttyname": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "posix_uname": { "ext.name": "posix", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "pow": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_filter": { "ext.name": "pcre", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "preg_grep": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_last_error": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "preg_match": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_match_all": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_quote": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_replace": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "preg_replace_callback": { "ext.name": "pcre", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "preg_split": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "prev": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "print_r": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "printf": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "proc_close": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "proc_get_status": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "proc_nice": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "proc_open": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "proc_terminate": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "property_exists": { "ext.name": "Core", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "putenv": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "quoted_printable_decode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "quoted_printable_encode": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "quotemeta": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rad2deg": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rand": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, + "random_int": { + "ext.name": "standard", + "ext.min": "7.0.0", + "ext.max": null, + "php.min": "7.0.0", + "php.max": null + }, + "random_bytes": { + "ext.name": "standard", + "ext.min": "7.0.0", + "ext.max": null, + "php.min": "7.0.0", + "php.max": null + }, "range": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rar_allow_broken_set": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_broken_is": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_close": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_comment_get": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_entry_get": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_list": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_open": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_solid_is": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rar_wrapper_cache_stats": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rawurldecode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rawurlencode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "read_exif_data": { "ext.name": "exif", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "readdir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readfile": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readgzfile": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_add_history": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_callback_handler_install": { "ext.name": "readline", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "readline_callback_handler_remove": { "ext.name": "readline", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "readline_callback_read_char": { "ext.name": "readline", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "readline_clear_history": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_completion_function": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_info": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_list_history": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_on_new_line": { "ext.name": "readline", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "readline_read_history": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readline_redisplay": { "ext.name": "readline", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "readline_write_history": { "ext.name": "readline", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "readlink": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "realpath": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "realpath_cache_get": { "ext.name": "standard", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "realpath_cache_size": { "ext.name": "standard", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "recode": { "ext.name": "recode", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "recode_file": { "ext.name": "recode", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "recode_string": { "ext.name": "recode", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "register_shutdown_function": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "register_tick_function": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "rename": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "reset": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "resourcebundle_count": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "resourcebundle_create": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "resourcebundle_get": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "resourcebundle_get_error_code": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "resourcebundle_get_error_message": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "resourcebundle_locales": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "restore_error_handler": { "ext.name": "Core", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "restore_exception_handler": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "restore_include_path": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "rewind": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rewinddir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rmdir": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "round": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rsort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rtrim": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "scandir": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sem_acquire": { "ext.name": "sysvsem", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sem_get": { "ext.name": "sysvsem", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sem_release": { "ext.name": "sysvsem", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sem_remove": { "ext.name": "sysvsem", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "serialize": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_abort": { "ext.name": "session", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "session_cache_expire": { "ext.name": "session", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "session_cache_limiter": { "ext.name": "session", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "session_commit": { "ext.name": "session", "ext.min": "4.4.0", "ext.max": null, "php.min": "4.4.0", "php.max": null }, "session_decode": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_destroy": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_encode": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_gc": { "ext.name": "session", "ext.min": "5.6.0alpha1", "ext.max": "5.6.0alpha3", "php.min": "5.6.0alpha1", "php.max": "5.6.0alpha3" }, "session_get_cookie_params": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_id": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_is_registered": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.3.29" }, "session_module_name": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_name": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_regenerate_id": { "ext.name": "session", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "session_register": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.3.29" }, "session_register_shutdown": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "session_reset": { "ext.name": "session", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "session_save_path": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_serializer_name": { "ext.name": "session", "ext.min": "5.6.0alpha1", "ext.max": "5.6.0alpha3", "php.min": "5.6.0alpha1", "php.max": "5.6.0alpha3" }, "session_set_cookie_params": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_set_save_handler": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_start": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_status": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "session_unregister": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.3.29" }, "session_unset": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "session_write_close": { "ext.name": "session", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "set_error_handler": { "ext.name": "Core", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "set_exception_handler": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "set_file_buffer": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "set_include_path": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "set_magic_quotes_runtime": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "set_socket_blocking": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "set_time_limit": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "setcookie": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "setlocale": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "setrawcookie": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "settype": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sha1": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "sha1_file": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "shell_exec": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_attach": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_detach": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_get_var": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_has_var": { "ext.name": "sysvshm", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shm_put_var": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_remove": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shm_remove_var": { "ext.name": "sysvshm", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shmop_close": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "shmop_delete": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "shmop_open": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "shmop_read": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "shmop_size": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "shmop_write": { "ext.name": "shmop", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "show_source": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "shuffle": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "similar_text": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "simplexml_import_dom": { "ext.name": "SimpleXML", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "simplexml_load_file": { "ext.name": "SimpleXML", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "simplexml_load_string": { "ext.name": "SimpleXML", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sin": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sinh": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "sizeof": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sleep": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmp2_get": { "ext.name": "snmp", "ext.min": "4.3.11", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "snmp2_getnext": { "ext.name": "snmp", "ext.min": "5.0.4", "ext.max": null, "php.min": "5.0.4", "php.max": null }, "snmp2_real_walk": { "ext.name": "snmp", "ext.min": "4.3.11", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "snmp2_set": { "ext.name": "snmp", "ext.min": "4.3.11", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "snmp2_walk": { "ext.name": "snmp", "ext.min": "4.3.11", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "snmp3_get": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp3_getnext": { "ext.name": "snmp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "snmp3_real_walk": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp3_set": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp3_walk": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp_get_quick_print": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmp_get_valueretrieval": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "snmp_read_mib": { "ext.name": "snmp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "snmp_set_enum_print": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp_set_oid_numeric_print": { "ext.name": "snmp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "snmp_set_oid_output_format": { "ext.name": "snmp", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "snmp_set_quick_print": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmp_set_valueretrieval": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "snmpget": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmpgetnext": { "ext.name": "snmp", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "snmprealwalk": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmpset": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmpwalk": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "snmpwalkoid": { "ext.name": "snmp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "socket_accept": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_bind": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_clear_error": { "ext.name": "sockets", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "socket_close": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_cmsg_space": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "socket_connect": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_create": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_create_listen": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_create_pair": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_get_option": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "socket_get_status": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "socket_getopt": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_getpeername": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_getsockname": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_import_stream": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "socket_last_error": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_listen": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_read": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_recv": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_recvfrom": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_recvmsg": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "socket_select": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_send": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_sendmsg": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "socket_sendto": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_set_block": { "ext.name": "sockets", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "socket_set_blocking": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "socket_set_nonblock": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_set_option": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "socket_set_timeout": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "socket_setopt": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_shutdown": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_strerror": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "socket_write": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "solr_get_version": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "sort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "soundex": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "spl_autoload": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_autoload_call": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_autoload_extensions": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_autoload_functions": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_autoload_register": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_autoload_unregister": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "spl_classes": { "ext.name": "spl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "spl_object_hash": { "ext.name": "spl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "split": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "spliti": { "ext.name": "ereg", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "sprintf": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sql_regcase": { "ext.name": "ereg", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sqlite_array_query": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_busy_timeout": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_changes": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_close": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_column": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_create_aggregate": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_create_function": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_current": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_error_string": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_escape_string": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_exec": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_factory": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_all": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_array": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_column_types": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_object": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_single": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_fetch_string": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_field_name": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_has_more": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_has_prev": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_last_error": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_last_insert_rowid": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_libencoding": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_libversion": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_next": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_num_fields": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_num_rows": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_open": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_popen": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_prev": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_query": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_rewind": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_seek": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_single_query": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_udf_decode_binary": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_udf_encode_binary": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_unbuffered_query": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqlite_valid": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "sqrt": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "srand": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sscanf": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "ssh2_auth_agent": { "ext.name": "ssh2", "ext.min": "0.12", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_auth_hostbased_file": { "ext.name": "ssh2", "ext.min": "0.7", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_auth_none": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_auth_password": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_auth_pubkey_file": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_connect": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_exec": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_fetch_stream": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_fingerprint": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_forward_accept": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_forward_listen": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_methods_negotiated": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_poll": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_publickey_add": { "ext.name": "ssh2", "ext.min": "0.10", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_publickey_init": { "ext.name": "ssh2", "ext.min": "0.10", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_publickey_list": { "ext.name": "ssh2", "ext.min": "0.10", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_publickey_remove": { "ext.name": "ssh2", "ext.min": "0.10", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_scp_recv": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_scp_send": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_chmod": { "ext.name": "ssh2", "ext.min": "0.12", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_lstat": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_mkdir": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_readlink": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_realpath": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_rename": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_rmdir": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_stat": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_symlink": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_sftp_unlink": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_shell": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ssh2_tunnel": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stat": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stomp_abort": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_ack": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_begin": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_close": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_commit": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_connect": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_connect_error": { "ext.name": "stomp", "ext.min": "0.3.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_error": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_get_read_timeout": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_get_session_id": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_has_frame": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_nack": { "ext.name": "stomp", "ext.min": "1.0.6", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_read_frame": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_send": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_set_read_timeout": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_subscribe": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_unsubscribe": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "stomp_version": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "str_getcsv": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "str_ireplace": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "str_pad": { "ext.name": "standard", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "str_repeat": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "str_replace": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "str_rot13": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "str_shuffle": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "str_split": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "str_word_count": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "strcasecmp": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strchr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strcmp": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strcoll": { "ext.name": "standard", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "strcspn": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stream_bucket_append": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_bucket_make_writeable": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_bucket_new": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_bucket_prepend": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_context_create": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_context_get_default": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "stream_context_get_options": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_context_get_params": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stream_context_set_default": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stream_context_set_option": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_context_set_params": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_copy_to_stream": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_filter_append": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_filter_prepend": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_filter_register": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_filter_remove": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "stream_get_contents": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_get_filters": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_get_line": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_get_meta_data": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_get_transports": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_get_wrappers": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_is_local": { "ext.name": "standard", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "stream_register_wrapper": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_resolve_include_path": { "ext.name": "standard", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "stream_select": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_set_blocking": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_set_chunk_size": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "stream_set_read_buffer": { "ext.name": "standard", "ext.min": "5.3.3", "ext.max": null, "php.min": "5.3.3", "php.max": null }, "stream_set_timeout": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_set_write_buffer": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "stream_socket_accept": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_client": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_enable_crypto": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "stream_socket_get_name": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_pair": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "stream_socket_recvfrom": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_sendto": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_server": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stream_socket_shutdown": { "ext.name": "standard", "ext.min": "5.2.1", "ext.max": null, "php.min": "5.2.1", "php.max": null }, "stream_supports_lock": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stream_wrapper_register": { "ext.name": "standard", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null }, "stream_wrapper_restore": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "stream_wrapper_unregister": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "strftime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strip_tags": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stripcslashes": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stripos": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stripslashes": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "stristr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strlen": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strnatcasecmp": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strnatcmp": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strncasecmp": { "ext.name": "Core", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "strncmp": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strpbrk": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "strpos": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strptime": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "strrchr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strrev": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strripos": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "strrpos": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strspn": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strstr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strtok": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strtolower": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strtotime": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strtoupper": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strtr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "strval": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "substr": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "substr_compare": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "substr_count": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "substr_replace": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_add": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_auth_get_parameter": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_auth_set_parameter": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_blame": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_cat": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_checkout": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_cleanup": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_client_version": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_commit": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_config_ensure": { "ext.name": "svn", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_copy": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_delete": { "ext.name": "svn", "ext.min": "0.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_diff": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_export": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_abort_txn": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_apply_text": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_begin_txn2": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_change_node_prop": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_check_path": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_contents_changed": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_copy": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_delete": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_dir_entries": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_file_contents": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_file_length": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_is_dir": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_is_file": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_make_dir": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_make_file": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_node_created_rev": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_node_prop": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_props_changed": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_revision_prop": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_revision_root": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_txn_root": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_fs_youngest_rev": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_import": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_info": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_lock": { "ext.name": "svn", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_log": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_ls": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_mkdir": { "ext.name": "svn", "ext.min": "0.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_move": { "ext.name": "svn", "ext.min": "0.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_propget": { "ext.name": "svn", "ext.min": "0.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_proplist": { "ext.name": "svn", "ext.min": "0.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_create": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_fs": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_fs_begin_txn_for_commit": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_fs_commit_txn": { "ext.name": "svn", "ext.min": "0.2", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_hotcopy": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_open": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_repos_recover": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_resolved": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_revert": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_status": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_switch": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_unlock": { "ext.name": "svn", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "svn_update": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "symlink": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "sys_get_temp_dir": { "ext.name": "standard", "ext.min": "5.2.1", "ext.max": null, "php.min": "5.2.1", "php.max": null }, "sys_getloadavg": { "ext.name": "standard", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "syslog": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "system": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "tan": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "tanh": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "tempnam": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "textdomain": { "ext.name": "gettext", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "tidy_access_count": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_clean_repair": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_config_count": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_create": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "0.5.3", "php.min": "4.3.0", "php.max": null }, "tidy_diagnose": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_error_count": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_body": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_config": { "ext.name": "tidy", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_error_buffer": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_head": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_html": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_html_ver": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_opt_doc": { "ext.name": "tidy", "ext.min": "2.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "tidy_get_output": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_release": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_root": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_get_status": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_getopt": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_is_xhtml": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_is_xml": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_load_config": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "1.2", "php.min": "4.3.0", "php.max": "4.4.9" }, "tidy_load_config_enc": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "1.2", "php.min": "4.3.0", "php.max": null }, "tidy_parse_file": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_parse_string": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_repair_file": { "ext.name": "tidy", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_repair_string": { "ext.name": "tidy", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidy_reset_config": { "ext.name": "tidy", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": "4.4.9" }, "tidy_save_config": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "1.2", "php.min": "4.3.0", "php.max": "4.4.9" }, "tidy_set_encoding": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "1.2", "php.min": "4.3.0", "php.max": "4.4.9" }, "tidy_setopt": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": "1.2", "php.min": "4.3.0", "php.max": "4.4.9" }, "tidy_warning_count": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "time": { "ext.name": "date", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "time_nanosleep": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "time_sleep_until": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_abbreviations_list": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_identifiers_list": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_location_get": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "timezone_name_from_abbr": { "ext.name": "date", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "timezone_name_get": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_offset_get": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_open": { "ext.name": "date", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timezone_transitions_get": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "timezone_version_get": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "tmpfile": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "token_get_all": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "token_name": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "touch": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "trait_exists": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "transliterator_create": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_create_from_rules": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_create_inverse": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_get_error_code": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_get_error_message": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_list_ids": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterator_transliterate": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "trigger_error": { "ext.name": "Core", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "trim": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "uasort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ucfirst": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ucwords": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "uksort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "umask": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "uniqid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "unixtojd": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "unlink": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "unpack": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "unregister_tick_function": { "ext.name": "standard", "ext.min": "4.0.3", "ext.max": null, "php.min": "4.0.3", "php.max": null }, "unserialize": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "uopz_backup": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_compose": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_copy": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_delete": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_extend": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_flags": { "ext.name": "uopz", "ext.min": "2.0.2", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_function": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_implement": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_overload": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_redefine": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_rename": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_restore": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uopz_undefine": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "uploadprogress_get_contents": { "ext.name": "uploadprogress", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "uploadprogress_get_info": { "ext.name": "uploadprogress", "ext.min": "0.3.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "urldecode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "urlencode": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "use_soap_error_handler": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "user_error": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "usleep": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "usort": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "utf8_decode": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "utf8_encode": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "var_dump": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "var_export": { "ext.name": "standard", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "version_compare": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "vfprintf": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "vprintf": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "vsprintf": { "ext.name": "standard", "ext.min": "4.0.7", "ext.max": null, "php.min": "4.0.7", "php.max": null }, "wddx_add_vars": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wddx_deserialize": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wddx_packet_end": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wddx_packet_start": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wddx_serialize_value": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wddx_serialize_vars": { "ext.name": "wddx", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "wordwrap": { "ext.name": "standard", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "xcache_clear_cache": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_coredump": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_count": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_coverager_decode": { "ext.name": "XCache", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xcache_coverager_get": { "ext.name": "XCache", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xcache_coverager_start": { "ext.name": "XCache", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xcache_coverager_stop": { "ext.name": "XCache", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xcache_dasm_file": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_dasm_string": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_dec": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get_data_type": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get_isref": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_get_op_type": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get_opcode": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get_opcode_spec": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_get_refcount": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_get_special_value": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_get_type": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xcache_inc": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_info": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_is_autoglobal": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_isset": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_list": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_set": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_unset": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xcache_unset_by_prefix": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "xdebug_break": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_call_class": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_call_file": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_call_function": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_call_line": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_clear_aggr_profiling_data": { "ext.name": "xdebug", "ext.min": "2.0.0beta6", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_code_coverage_started": { "ext.name": "xdebug", "ext.min": "2.3.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "xdebug_debug_zval": { "ext.name": "xdebug", "ext.min": "2.0.0beta2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_debug_zval_stdout": { "ext.name": "xdebug", "ext.min": "2.0.0beta4", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_disable": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_dump_aggr_profiling_data": { "ext.name": "xdebug", "ext.min": "2.0.0beta6", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_dump_function_trace": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": "1.3.2", "php.min": "4.3.0", "php.max": null }, "xdebug_dump_superglobals": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_enable": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_code_coverage": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_collected_errors": { "ext.name": "xdebug", "ext.min": "2.1.0beta1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "xdebug_get_declared_vars": { "ext.name": "xdebug", "ext.min": "2.0.0beta5", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_formatted_function_stack": { "ext.name": "xdebug", "ext.min": "2.1.0beta1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "xdebug_get_function_count": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_function_stack": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_function_trace": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": "1.3.2", "php.min": "4.3.0", "php.max": null }, "xdebug_get_headers": { "ext.name": "xdebug", "ext.min": "2.1.0beta1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "xdebug_get_profiler_filename": { "ext.name": "xdebug", "ext.min": "2.0.0beta4", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_stack_depth": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_get_tracefile_name": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_is_enabled": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_memory_usage": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_peak_memory_usage": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_print_function_stack": { "ext.name": "xdebug", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_set_error_handler": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": "2.0.0beta6", "php.min": "4.3.0", "php.max": null }, "xdebug_start_code_coverage": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_start_error_collection": { "ext.name": "xdebug", "ext.min": "2.1.0beta1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "xdebug_start_trace": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_stop_code_coverage": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_stop_error_collection": { "ext.name": "xdebug", "ext.min": "2.1.0beta1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "xdebug_stop_trace": { "ext.name": "xdebug", "ext.min": "1.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_time_index": { "ext.name": "xdebug", "ext.min": "1.3.0RC1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xdebug_var_dump": { "ext.name": "xdebug", "ext.min": "1.3.0RC1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xhprof_disable": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xhprof_enable": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xhprof_sample_disable": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xhprof_sample_enable": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xml_error_string": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_get_current_byte_index": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_get_current_column_number": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_get_current_line_number": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_get_error_code": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parse": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parse_into_struct": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parser_create": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parser_create_ns": { "ext.name": "xml", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "xml_parser_free": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parser_get_option": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_parser_set_option": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_character_data_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_default_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_element_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_end_namespace_decl_handler": { "ext.name": "xml", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "xml_set_external_entity_ref_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_notation_decl_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_object": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_processing_instruction_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xml_set_start_namespace_decl_handler": { "ext.name": "xml", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "xml_set_unparsed_entity_decl_handler": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "xmlrpc_decode": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_decode_request": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_encode": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_encode_request": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_get_type": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_is_fault": { "ext.name": "xmlrpc", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "xmlrpc_parse_method_descriptions": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_add_introspection_data": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_call_method": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_create": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_destroy": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_register_introspection_callback": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_server_register_method": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlrpc_set_type": { "ext.name": "xmlrpc", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "xmlwriter_end_attribute": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_cdata": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_comment": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_document": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_dtd": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_dtd_attlist": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_dtd_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_dtd_entity": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_end_pi": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_flush": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_full_end_element": { "ext.name": "xmlwriter", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "xmlwriter_open_memory": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_open_uri": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_output_memory": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_set_indent": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_set_indent_string": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_attribute": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_attribute_ns": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_cdata": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_comment": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_document": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_dtd": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_dtd_attlist": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_dtd_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_dtd_entity": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_element_ns": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_start_pi": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_text": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_attribute": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_attribute_ns": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_cdata": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_comment": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_dtd": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_dtd_attlist": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_dtd_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_dtd_entity": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_element": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_element_ns": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_pi": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "xmlwriter_write_raw": { "ext.name": "xmlwriter", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "yaml_emit": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "yaml_emit_file": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "yaml_parse": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "yaml_parse_file": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "yaml_parse_url": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zend_logo_guid": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.4.45" }, "zend_thread_id": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "zend_version": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "zip_close": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_close": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_compressedsize": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_compressionmethod": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_filesize": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_name": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_open": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_entry_read": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_open": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zip_read": { "ext.name": "zip", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "zlib_decode": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "zlib_encode": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "zlib_get_coding_type": { "ext.name": "zlib", "ext.min": "4.3.2", "ext.max": null, "php.min": "4.3.2", "php.max": null } }, "classes": { "AMQPChannel": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPChannelException": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPConnection": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPConnectionException": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPEnvelope": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPException": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPExchange": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPExchangeException": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPQueue": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQPQueueException": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "APCIterator": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "AppendIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ArrayIterator": { "ext.name": "spl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ArrayObject": { "ext.name": "spl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "BadFunctionCallException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "BadMethodCallException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLFile": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CachingIterator": { "ext.name": "spl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "CallbackFilterIterator": { "ext.name": "spl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "Closure": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Collator": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "Collectable": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Cond": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "DOMAttr": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMCdataSection": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMCharacterData": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMComment": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMConfiguration": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMDocument": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMDocumentFragment": { "ext.name": "dom", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "DOMDocumentType": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMDomError": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMElement": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMEntity": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMEntityReference": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMErrorHandler": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMException": { "ext.name": "dom", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "DOMImplementation": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMImplementationList": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMImplementationSource": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMLocator": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNameList": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNameSpaceNode": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNamedNodeMap": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNode": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNodeList": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMNotation": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMProcessingInstruction": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMStringExtend": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMStringList": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMText": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMTypeinfo": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMUserDataHandler": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOMXPath": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DateInterval": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "DatePeriod": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "DateTime": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "DateTimeImmutable": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "DateTimeZone": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "Directory": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DirectoryIterator": { "ext.name": "spl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DomainException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "EmptyIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ErrorException": { "ext.name": "Core", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Exception": { "ext.name": "Core", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "FilesystemIterator": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FilterIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Gender\\Gender": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Generator": { "ext.name": "Core", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "GlobIterator": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "HaruAnnotation": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruDestination": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruDoc": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruEncoder": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruException": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruFont": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruImage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruOutline": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HaruPage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "HttpDeflateStream": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpEncodingException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpHeaderException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpInflateStream": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpInvalidParamException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpMalformedHeadersException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpMessage": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpMessageTypeException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpQueryString": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpQueryStringException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequest": { "ext.name": "http", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequestDataShare": { "ext.name": "http", "ext.min": "1.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequestException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequestMethodException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequestPool": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRequestPoolException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpResponse": { "ext.name": "http", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpResponseException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpRuntimeException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpSocketException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpUrlException": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HttpUtil": { "ext.name": "http", "ext.min": "0.7.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "Imagick": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickDraw": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickDrawException": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickException": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickKernel": { "ext.name": "imagick", "ext.min": "3.3.0RC1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickKernelException": { "ext.name": "imagick", "ext.min": "3.3.0RC1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickPixel": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickPixelException": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickPixelIterator": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ImagickPixelIteratorException": { "ext.name": "imagick", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "InfiniteIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "IntlBreakIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlCalendar": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlCodePointBreakIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlDateFormatter": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IntlException": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlGregorianCalendar": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlPartsIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlRuleBasedBreakIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IntlTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "InvalidArgumentException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "IteratorIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LengthException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LibXMLError": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LimitIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Locale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "LogicException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Memcache": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "MemcachePool": { "ext.name": "memcache", "ext.min": "3.0.0", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "Memcached": { "ext.name": "memcached", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MemcachedException": { "ext.name": "memcached", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MemcachedServer": { "ext.name": "memcached", "ext.min": "2.2.0b1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MessageFormatter": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MessagePack": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MessagePackUnpacker": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "Mongo": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoBinData": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoClient": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoCode": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoCollection": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoCommandCursor": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoConnectionException": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoCursor": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoCursorException": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoCursorTimeoutException": { "ext.name": "mongo", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoDB": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoDBRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoDate": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoDeleteBatch": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoDuplicateKeyException": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoException": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoExecutionTimeoutException": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoGridFS": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoGridFSCursor": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoGridFSException": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoGridFSFile": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoId": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoInsertBatch": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoInt32": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoInt64": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoLog": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoMaxKey": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoMinKey": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoPool": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoProtocolException": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoRegex": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MongoResultException": { "ext.name": "mongo", "ext.min": "1.3.0RC1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoTimestamp": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MongoUpdateBatch": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoUtil": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": "0.9.0", "php.min": "5.0.0", "php.max": null }, "MongoWriteBatch": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MongoWriteConcernException": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MultipleIterator": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Mutex": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "NoRewindIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Normalizer": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.3.0alpha1", "php.max": null }, "NumberFormatter": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "OAuth": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAuthException": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAuthProvider": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OutOfBoundsException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OutOfRangeException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OverflowException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PDFlib": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PDFlibException": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PDO": { "ext.name": "PDO", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PDOException": { "ext.name": "PDO", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PDORow": { "ext.name": "PDO", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PDOStatement": { "ext.name": "PDO", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ParentIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Phar": { "ext.name": "phar", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PharData": { "ext.name": "phar", "ext.min": "2.0.0a1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PharException": { "ext.name": "phar", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PharFileInfo": { "ext.name": "phar", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "Pool": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "RangeException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "RarArchive": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RarEntry": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RarException": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RecursiveArrayIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "RecursiveCachingIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "RecursiveCallbackFilterIterator": { "ext.name": "spl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "RecursiveDirectoryIterator": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "RecursiveFilterIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "RecursiveIteratorIterator": { "ext.name": "spl", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "RecursiveRegexIterator": { "ext.name": "spl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RecursiveTreeIterator": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Redis": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RedisArray": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RedisException": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "Reflection": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionException": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionExtension": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionFunction": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionFunctionAbstract": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionMethod": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionObject": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionParameter": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionProperty": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ReflectionZendExtension": { "ext.name": "Reflection", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "RegexIterator": { "ext.name": "spl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ResourceBundle": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "Riak\\Bucket": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\BucketPropertyList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Connection": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Crdt\\Counter": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Crdt\\Input\\GetInput": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Crdt\\Input\\UpdateInput": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\BadArgumentsException": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\CommunicationException": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\ConnectionException": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\NonUniqueException": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\RiakException": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\UnexpectedResponseException": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Exception\\UnresolvedConflictException": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\DeleteInput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\GetInput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\GetResolverInput": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\IndexInput": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\Input": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Input\\PutInput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Link": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Functions\\BaseFunction": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Functions\\ErlangFunction": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Functions\\JavascriptFunction": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Input\\BucketInput": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Input\\Input": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Input\\KeyDataListInput": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Input\\KeyListInput": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\MapReduce": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Output\\Output": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Phase\\MapPhase": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Phase\\Phase": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\MapReduce\\Phase\\ReducePhase": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Object": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\ObjectList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\GetOutput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\IndexOutput": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\IndexResult": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\IndexResultList": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\Output": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\PutOutput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\YoungestSiblingResolver": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\PoolInfo": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\CommitHook": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\CommitHookList": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ModuleFunction": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ReplicationMode\\Disabled": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ReplicationMode\\FullSyncOnly": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ReplicationMode\\RealTimeAndFullSync": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ReplicationMode\\RealTimeOnly": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Query\\IndexQuery": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Search\\Input\\ParameterBag": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Search\\Output\\DocumentOutput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Search\\Output\\Output": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Search\\Search": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\ServerInfo": { "ext.name": "riak", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "RuntimeException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "SNMP": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SNMPException": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SQLite3": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLite3Result": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLite3Stmt": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLiteDatabase": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLiteException": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLiteResult": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLiteUnbuffered": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SessionHandler": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SimpleXMLElement": { "ext.name": "SimpleXML", "ext.min": "5.0.1", "ext.max": null, "php.min": "5.0.1", "php.max": null }, "SimpleXMLIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "SoapClient": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SoapFault": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SoapHeader": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SoapParam": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SoapServer": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SoapVar": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SolrClient": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrClientException": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrCollapseFunction": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SolrDisMaxQuery": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SolrDocument": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrDocumentField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrException": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrGenericResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrIllegalArgumentException": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrIllegalOperationException": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrInputDocument": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrMissingMandatoryParameterException": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SolrModifiableParams": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrObject": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrParams": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrPingResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrQueryResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrServerException": { "ext.name": "solr", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SolrUpdateResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SolrUtils": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SphinxClient": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SplDoublyLinkedList": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplFileInfo": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "SplFileObject": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "SplFixedArray": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplHeap": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplMaxHeap": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplMinHeap": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplObjectStorage": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "SplPriorityQueue": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplQueue": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplStack": { "ext.name": "spl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SplTempFileObject": { "ext.name": "spl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "Spoofchecker": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "Stomp": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "StompException": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "StompFrame": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "Svn": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SvnNode": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SvnWc": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SvnWcSchedule": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SyncEvent": { "ext.name": "sync", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SyncMutex": { "ext.name": "sync", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SyncReaderWriter": { "ext.name": "sync", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SyncSemaphore": { "ext.name": "sync", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Thread": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Threaded": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Transliterator": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "UConverter": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "UnderflowException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "UnexpectedValueException": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "VarnishAdmin": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VarnishException": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VarnishLog": { "ext.name": "varnish", "ext.min": "0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VarnishStat": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Worker": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLDiff\\Base": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLDiff\\DOM": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLDiff\\Exception": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLDiff\\File": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLDiff\\Memory": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XMLReader": { "ext.name": "xmlreader", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XMLWriter": { "ext.name": "xmlwriter", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "XSLTProcessor": { "ext.name": "xsl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "Yac": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ZipArchive": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__PHP_Incomplete_Class": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "finfo": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "http\\Client": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Request": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Response": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Cookie": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Encoding\\Stream": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Encoding\\Stream\\Dechunk": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Encoding\\Stream\\Deflate": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Encoding\\Stream\\Inflate": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Env": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Env\\Request": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Env\\Response": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadConversionException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadHeaderException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadMessageException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadMethodCallException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadQueryStringException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\BadUrlException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\InvalidArgumentException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\RuntimeException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Exception\\UnexpectedValueException": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Header": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Header\\Parser": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Message": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Message\\Body": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Message\\Parser": { "ext.name": "http", "ext.min": "2.2.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Params": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\QueryString": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Url": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "mimemessage": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mysqli": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_driver": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_result": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_sql_exception": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_stmt": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "mysqli_warning": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "parent": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "php_user_filter": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "self": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stackable": { "ext.name": "pthreads", "ext.min": "0.0.36", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "static": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "stdClass": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "tidy": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "tidyNode": { "ext.name": "tidy", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.0.1", "php.max": null } }, "interfaces": { "ArrayAccess": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "Countable": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "DateTimeInterface": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "Iterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "IteratorAggregate": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "JsonSerializable": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MongoCursorInterface": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "OuterIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "RecursiveIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Reflector": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "Riak\\MapReduce\\Output\\StreamOutput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\ConflictResolver": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Output\\KeyStreamOutput": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "Riak\\Property\\ReplicationMode\\ReplicationMode": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SeekableIterator": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Serializable": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "SessionHandlerInterface": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SessionIdInterface": { "ext.name": "session", "ext.min": "5.5.1", "ext.max": null, "php.min": "5.5.1", "php.max": null }, "SplObserver": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "SplSubject": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "Traversable": { "ext.name": "spl", "ext.min": "5.1.0", "ext.max": "5.2.17", "php.min": "5.1.0", "php.max": null }, "http\\Exception": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "constants": { "ABDAY_1": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_2": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_3": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_4": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_5": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_6": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABDAY_7": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_1": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_10": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_11": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_12": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_2": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_3": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_4": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_5": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_6": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_7": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_8": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ABMON_9": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "AF_INET": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "AF_INET6": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "AF_UNIX": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ALT_DIGITS": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "AMQP_AUTOACK": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_AUTODELETE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_DURABLE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_EXCLUSIVE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_EX_TYPE_DIRECT": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_EX_TYPE_FANOUT": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_EX_TYPE_HEADERS": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_EX_TYPE_TOPIC": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_IFEMPTY": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_IFUNUSED": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_IMMEDIATE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_INTERNAL": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_MANDATORY": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_MULTIPLE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_NOLOCAL": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_NOPARAM": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_NOWAIT": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_OS_SOCKET_TIMEOUT_ERRNO": { "ext.name": "amqp", "ext.min": "1.0.8", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_PASSIVE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AMQP_REQUEUE": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "AM_STR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "APACHE_MAP": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "APCU_APC_FULL_BC": { "ext.name": "apcu", "ext.min": "4.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "APC_BIN_VERIFY_CRC32": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_BIN_VERIFY_MD5": { "ext.name": "apc", "ext.min": "3.1.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_ALL": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_ATIME": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_CTIME": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_DEVICE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_DTIME": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_FILENAME": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_INODE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_KEY": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_MD5": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_MEM_SIZE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_MTIME": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_NONE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_NUM_HITS": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_REFCOUNT": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_TTL": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_TYPE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_ITER_VALUE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_LIST_ACTIVE": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "APC_LIST_DELETED": { "ext.name": "apc", "ext.min": "3.1.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ARRAY_FILTER_USE_BOTH": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "ARRAY_FILTER_USE_KEY": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "ASSERT_ACTIVE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ASSERT_BAIL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ASSERT_CALLBACK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ASSERT_QUIET_EVAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ASSERT_WARNING": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "BUS_ADRALN": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "BUS_ADRERR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "BUS_OBJERR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CAL_DOW_DAYNO": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_DOW_LONG": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_DOW_SHORT": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_EASTER_ALWAYS_GREGORIAN": { "ext.name": "calendar", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "CAL_EASTER_ALWAYS_JULIAN": { "ext.name": "calendar", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "CAL_EASTER_DEFAULT": { "ext.name": "calendar", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "CAL_EASTER_ROMAN": { "ext.name": "calendar", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "CAL_FRENCH": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_GREGORIAN": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_JEWISH": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_JEWISH_ADD_ALAFIM": { "ext.name": "calendar", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "CAL_JEWISH_ADD_ALAFIM_GERESH": { "ext.name": "calendar", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "CAL_JEWISH_ADD_GERESHAYIM": { "ext.name": "calendar", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "CAL_JULIAN": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_FRENCH": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_GREGORIAN_LONG": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_GREGORIAN_SHORT": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_JEWISH": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_JULIAN_LONG": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_MONTH_JULIAN_SHORT": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CAL_NUM_CALS": { "ext.name": "calendar", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CASE_LOWER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CASE_UPPER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CHAR_MAX": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CLD_CONTINUED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CLD_DUMPED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CLD_EXITED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CLD_KILLED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CLD_STOPPED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CLD_TRAPPED": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CL_EXPUNGE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CODESET": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "CONNECTION_ABORTED": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CONNECTION_NORMAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CONNECTION_TIMEOUT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "COUNT_NORMAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "COUNT_RECURSIVE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CP_MOVE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CP_UID": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_DOCS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_FULLPAGE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_GENERAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_GROUP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_MODULES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_QA": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CREDITS_SAPI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CRNCYSTR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "CRYPT_BLOWFISH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CRYPT_EXT_DES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CRYPT_MD5": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CRYPT_SALT_LENGTH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CRYPT_SHA256": { "ext.name": "standard", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CRYPT_SHA512": { "ext.name": "standard", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CRYPT_STD_DES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "CURLAUTH_ANY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_ANYSAFE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_BASIC": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_DIGEST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_DIGEST_IE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLAUTH_GSSNEGOTIATE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_NONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLAUTH_NTLM": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLAUTH_ONLY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLCLOSEPOLICY_CALLBACK": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLCLOSEPOLICY_LEAST_RECENTLY_USED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLCLOSEPOLICY_LEAST_TRAFFIC": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLCLOSEPOLICY_OLDEST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLCLOSEPOLICY_SLOWEST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLE_ABORTED_BY_CALLBACK": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_BAD_CALLING_ORDER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_BAD_CONTENT_ENCODING": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_BAD_DOWNLOAD_RESUME": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLE_BAD_FUNCTION_ARGUMENT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_BAD_PASSWORD_ENTERED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_COULDNT_CONNECT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_COULDNT_RESOLVE_HOST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_COULDNT_RESOLVE_PROXY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FAILED_INIT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FILESIZE_EXCEEDED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FILE_COULDNT_READ_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_ACCESS_DENIED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_BAD_DOWNLOAD_RESUME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_CANT_GET_HOST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_CANT_RECONNECT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_GET_SIZE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_RETR_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_SET_ASCII": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_SET_BINARY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_STOR_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_COULDNT_USE_REST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_PARTIAL_FILE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLE_FTP_PORT_FAILED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_QUOTE_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_SSL_FAILED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_USER_PASSWORD_INCORRECT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WEIRD_227_FORMAT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WEIRD_PASS_REPLY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WEIRD_PASV_REPLY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WEIRD_SERVER_REPLY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WEIRD_USER_REPLY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FTP_WRITE_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_FUNCTION_NOT_FOUND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_GOT_NOTHING": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_HTTP_NOT_FOUND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_HTTP_PORT_FAILED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_HTTP_POST_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_HTTP_RANGE_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_HTTP_RETURNED_ERROR": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLE_LDAP_CANNOT_BIND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_LDAP_INVALID_URL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_LDAP_SEARCH_FAILED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_LIBRARY_NOT_FOUND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_MALFORMAT_USER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_OBSOLETE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_OK": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_OPERATION_TIMEDOUT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLE_OPERATION_TIMEOUTED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_OUT_OF_MEMORY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_PARTIAL_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_READ_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_RECV_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SEND_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SHARE_IN_USE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSH": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLE_SSL_CACERT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_CERTPROBLEM": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_CIPHER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_CONNECT_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_ENGINE_NOTFOUND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_ENGINE_SETFAILED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_SSL_PEER_CERTIFICATE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_TELNET_OPTION_SYNTAX": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_TOO_MANY_REDIRECTS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_UNKNOWN_TELNET_OPTION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_UNSUPPORTED_PROTOCOL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_URL_MALFORMAT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_URL_MALFORMAT_USER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLE_WRITE_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLFTPAUTH_DEFAULT": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLFTPAUTH_SSL": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLFTPAUTH_TLS": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLFTPMETHOD_MULTICWD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLFTPMETHOD_NOCWD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLFTPMETHOD_SINGLECWD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLFTPSSL_ALL": { "ext.name": "curl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "CURLFTPSSL_CCC_ACTIVE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLFTPSSL_CCC_NONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLFTPSSL_CCC_PASSIVE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLFTPSSL_CONTROL": { "ext.name": "curl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "CURLFTPSSL_NONE": { "ext.name": "curl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "CURLFTPSSL_TRY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLGSSAPI_DELEGATION_FLAG": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLGSSAPI_DELEGATION_POLICY_FLAG": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_APPCONNECT_TIME": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_CERTINFO": { "ext.name": "curl", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CURLINFO_CONDITION_UNMET": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_CONNECT_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_CONTENT_LENGTH_DOWNLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_CONTENT_LENGTH_UPLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_CONTENT_TYPE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_COOKIELIST": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_EFFECTIVE_URL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_FILETIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_FTP_ENTRY_PATH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_HEADER_OUT": { "ext.name": "curl", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "CURLINFO_HEADER_SIZE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_HTTPAUTH_AVAIL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_HTTP_CODE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_HTTP_CONNECTCODE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_LASTONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_LOCAL_IP": { "ext.name": "curl", "ext.min": "5.4.7", "ext.max": null, "php.min": "5.4.7", "php.max": null }, "CURLINFO_LOCAL_PORT": { "ext.name": "curl", "ext.min": "5.4.7", "ext.max": null, "php.min": "5.4.7", "php.max": null }, "CURLINFO_NAMELOOKUP_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_NUM_CONNECTS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_OS_ERRNO": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_PRETRANSFER_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_PRIMARY_IP": { "ext.name": "curl", "ext.min": "5.4.7", "ext.max": null, "php.min": "5.4.7", "php.max": null }, "CURLINFO_PRIMARY_PORT": { "ext.name": "curl", "ext.min": "5.4.7", "ext.max": null, "php.min": "5.4.7", "php.max": null }, "CURLINFO_PRIVATE": { "ext.name": "curl", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "CURLINFO_PROXYAUTH_AVAIL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_REDIRECT_COUNT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_REDIRECT_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_REDIRECT_URL": { "ext.name": "curl", "ext.min": "5.3.7", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "CURLINFO_REQUEST_SIZE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_RESPONSE_CODE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_RTSP_CLIENT_CSEQ": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_RTSP_CSEQ_RECV": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_RTSP_SERVER_CSEQ": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_RTSP_SESSION_ID": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_SIZE_DOWNLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_SIZE_UPLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_SPEED_DOWNLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_SPEED_UPLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_SSL_ENGINES": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLINFO_SSL_VERIFYRESULT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_STARTTRANSFER_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLINFO_TOTAL_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLMOPT_MAXCONNECTS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLMOPT_PIPELINING": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLMSG_DONE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_BAD_EASY_HANDLE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_BAD_HANDLE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_CALL_MULTI_PERFORM": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_INTERNAL_ERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_OK": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLM_OUT_OF_MEMORY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_ACCEPTTIMEOUT_MS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_ACCEPT_ENCODING": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_ADDRESS_SCOPE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_APPEND": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_AUTOREFERER": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLOPT_BINARYTRANSFER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_BUFFERSIZE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CAINFO": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CAPATH": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CERTINFO": { "ext.name": "curl", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CURLOPT_CLOSEPOLICY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": "5.5.30" }, "CURLOPT_CONNECTTIMEOUT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CONNECTTIMEOUT_MS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CONNECT_ONLY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_COOKIE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_COOKIEFILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_COOKIEJAR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_COOKIELIST": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_COOKIESESSION": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLOPT_CRLF": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_CRLFILE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_CUSTOMREQUEST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_DIRLISTONLY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_DNS_CACHE_TIMEOUT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_DNS_SERVERS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_DNS_USE_GLOBAL_CACHE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_EGDSOCKET": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_ENCODING": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FAILONERROR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FILETIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FNMATCH_FUNCTION": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_FOLLOWLOCATION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FORBID_REUSE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FRESH_CONNECT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTPAPPEND": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTPLISTONLY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTPPORT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTPSSLAUTH": { "ext.name": "curl", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "CURLOPT_FTP_ACCOUNT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_FTP_ALTERNATIVE_TO_USER": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_FTP_CREATE_MISSING_DIRS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTP_FILEMETHOD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_FTP_RESPONSE_TIMEOUT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_FTP_SKIP_PASV_IP": { "ext.name": "curl", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CURLOPT_FTP_SSL": { "ext.name": "curl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "CURLOPT_FTP_SSL_CCC": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_FTP_USE_EPRT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTP_USE_EPSV": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_FTP_USE_PRET": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_GSSAPI_DELEGATION": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_HEADER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HEADERFUNCTION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTP200ALIASES": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTPAUTH": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTPGET": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTPHEADER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTPPROXYTUNNEL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_HTTP_CONTENT_DECODING": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_HTTP_TRANSFER_DECODING": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_HTTP_VERSION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_IGNORE_CONTENT_LENGTH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_INFILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_INFILESIZE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_INTERFACE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_IPRESOLVE": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_ISSUERCERT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_KEYPASSWD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_KRB4LEVEL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_KRBLEVEL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_LOCALPORT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_LOCALPORTRANGE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_LOW_SPEED_LIMIT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_LOW_SPEED_TIME": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_MAIL_AUTH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_MAIL_FROM": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_MAIL_RCPT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_MAXCONNECTS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_MAXFILESIZE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_MAXREDIRS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_MAX_RECV_SPEED_LARGE": { "ext.name": "curl", "ext.min": "5.3.7", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "CURLOPT_MAX_SEND_SPEED_LARGE": { "ext.name": "curl", "ext.min": "5.3.7", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "CURLOPT_MUTE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_NETRC": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_NETRC_FILE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_NEW_DIRECTORY_PERMS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_NEW_FILE_PERMS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_NOBODY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_NOPROGRESS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_NOPROXY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_NOSIGNAL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PASSWDFUNCTION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PASSWORD": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_PORT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_POST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_POSTFIELDS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_POSTQUOTE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_POSTREDIR": { "ext.name": "curl", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "CURLOPT_PREQUOTE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_PRIVATE": { "ext.name": "curl", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "CURLOPT_PROGRESSFUNCTION": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_PROTOCOLS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXYAUTH": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXYPASSWORD": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_PROXYPORT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXYTYPE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXYUSERNAME": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_PROXYUSERPWD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_PROXY_TRANSFER_MODE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_PUT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_QUOTE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_RANDOM_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_RANGE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_READDATA": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_READFUNCTION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_REDIR_PROTOCOLS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_REFERER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_RESOLVE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RESUME_FROM": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_RETURNTRANSFER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_RTSP_CLIENT_CSEQ": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RTSP_REQUEST": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RTSP_SERVER_CSEQ": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RTSP_SESSION_ID": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RTSP_STREAM_URI": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_RTSP_TRANSPORT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SAFE_UPLOAD": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SHARE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SOCKS5_GSSAPI_NEC": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SOCKS5_GSSAPI_SERVICE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SSH_AUTH_TYPES": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_SSH_HOST_PUBLIC_KEY_MD5": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_SSH_KNOWNHOSTS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SSH_PRIVATE_KEYFILE": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_SSH_PUBLIC_KEYFILE": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLOPT_SSLCERT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLCERTPASSWD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLCERTTYPE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLENGINE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLENGINE_DEFAULT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLKEY": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLKEYPASSWD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLKEYTYPE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSLVERSION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSL_CIPHER_LIST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSL_OPTIONS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SSL_SESSIONID_CACHE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_SSL_VERIFYHOST": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_SSL_VERIFYPEER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_STDERR": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TCP_KEEPALIVE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TCP_KEEPIDLE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TCP_KEEPINTVL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TCP_NODELAY": { "ext.name": "curl", "ext.min": "5.2.1", "ext.max": null, "php.min": "5.2.1", "php.max": null }, "CURLOPT_TELNETOPTIONS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TFTP_BLKSIZE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TIMECONDITION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TIMEOUT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TIMEOUT_MS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TIMEVALUE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TLSAUTH_PASSWORD": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TLSAUTH_TYPE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TLSAUTH_USERNAME": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_TRANSFERTEXT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_TRANSFER_ENCODING": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_UNRESTRICTED_AUTH": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_UPLOAD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_URL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_USERAGENT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_USERNAME": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_USERPWD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_USE_SSL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_VERBOSE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_WILDCARDMATCH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLOPT_WRITEFUNCTION": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLOPT_WRITEHEADER": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPAUSE_ALL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPAUSE_CONT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPAUSE_RECV": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPAUSE_RECV_CONT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPAUSE_SEND": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPAUSE_SEND_CONT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_ALL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_DICT": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_FILE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_FTP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_FTPS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_GOPHER": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_HTTP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_HTTPS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_IMAP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_IMAPS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_LDAP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_LDAPS": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_POP3": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_POP3S": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMPE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMPS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMPT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMPTE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTMPTS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_RTSP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_SCP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_SFTP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_SMTP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_SMTPS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLPROTO_TELNET": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROTO_TFTP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROXY_HTTP": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROXY_SOCKS4": { "ext.name": "curl", "ext.min": "5.2.10", "ext.max": null, "php.min": "5.2.10", "php.max": null }, "CURLPROXY_SOCKS4A": { "ext.name": "curl", "ext.min": "5.5.23RC1", "ext.max": null, "php.min": "5.5.23RC1", "php.max": null }, "CURLPROXY_SOCKS5": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURLPROXY_SOCKS5_HOSTNAME": { "ext.name": "curl", "ext.min": "5.5.23RC1", "ext.max": null, "php.min": "5.5.23RC1", "php.max": null }, "CURLSHOPT_NONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLSHOPT_SHARE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLSHOPT_UNSHARE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLSSH_AUTH_ANY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLSSH_AUTH_DEFAULT": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSH_AUTH_HOST": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSH_AUTH_KEYBOARD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSH_AUTH_NONE": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSH_AUTH_PASSWORD": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSH_AUTH_PUBLICKEY": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURLSSLOPT_ALLOW_BEAST": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLUSESSL_ALL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLUSESSL_CONTROL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLUSESSL_NONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLUSESSL_TRY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURLVERSION_NOW": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_FNMATCHFUNC_FAIL": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_FNMATCHFUNC_MATCH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_FNMATCHFUNC_NOMATCH": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_HTTP_VERSION_1_0": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_HTTP_VERSION_1_1": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_HTTP_VERSION_2_0": { "ext.name": "curl", "ext.min": "5.5.24RC1", "ext.max": null, "php.min": "5.5.24RC1", "php.max": null }, "CURL_HTTP_VERSION_NONE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_IPRESOLVE_V4": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURL_IPRESOLVE_V6": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURL_IPRESOLVE_WHATEVER": { "ext.name": "curl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "CURL_LOCK_DATA_COOKIE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_LOCK_DATA_DNS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_LOCK_DATA_SSL_SESSION": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_NETRC_IGNORED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_NETRC_OPTIONAL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_NETRC_REQUIRED": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_READFUNC_PAUSE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_ANNOUNCE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_DESCRIBE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_GET_PARAMETER": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_OPTIONS": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_PAUSE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_PLAY": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_RECEIVE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_RECORD": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_SETUP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_SET_PARAMETER": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_RTSPREQ_TEARDOWN": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_SSLVERSION_DEFAULT": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_SSLVERSION_SSLv2": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_SSLVERSION_SSLv3": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_SSLVERSION_TLSv1": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_SSLVERSION_TLSv1_0": { "ext.name": "curl", "ext.min": "5.5.19RC1", "ext.max": null, "php.min": "5.5.19RC1", "php.max": null }, "CURL_SSLVERSION_TLSv1_1": { "ext.name": "curl", "ext.min": "5.5.19RC1", "ext.max": null, "php.min": "5.5.19RC1", "php.max": null }, "CURL_SSLVERSION_TLSv1_2": { "ext.name": "curl", "ext.min": "5.5.19RC1", "ext.max": null, "php.min": "5.5.19RC1", "php.max": null }, "CURL_TIMECOND_IFMODSINCE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_TIMECOND_IFUNMODSINCE": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_TIMECOND_LASTMOD": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_TIMECOND_NONE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_TLSAUTH_SRP": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "CURL_VERSION_HTTP2": { "ext.name": "curl", "ext.min": "5.5.24RC1", "ext.max": null, "php.min": "5.5.24RC1", "php.max": null }, "CURL_VERSION_IPV6": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_VERSION_KERBEROS4": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_VERSION_LIBZ": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_VERSION_SSL": { "ext.name": "curl", "ext.min": "4.0.2", "ext.max": null, "php.min": "4.0.2", "php.max": null }, "CURL_WRITEFUNC_PAUSE": { "ext.name": "curl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "DATE_ATOM": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_COOKIE": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_ISO8601": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RFC1036": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RFC1123": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RFC2822": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RFC3339": { "ext.name": "date", "ext.min": "5.1.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "DATE_RFC822": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RFC850": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_RSS": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DATE_W3C": { "ext.name": "date", "ext.min": "5.1.1", "ext.max": null, "php.min": "5.1.1", "php.max": null }, "DAY_1": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_2": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_3": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_4": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_5": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_6": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DAY_7": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "DEBUG_BACKTRACE_IGNORE_ARGS": { "ext.name": "Core", "ext.min": "5.3.6", "ext.max": null, "php.min": "5.3.6", "php.max": null }, "DEBUG_BACKTRACE_PROVIDE_OBJECT": { "ext.name": "Core", "ext.min": "5.3.6", "ext.max": null, "php.min": "5.3.6", "php.max": null }, "DEFAULT_INCLUDE_PATH": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DIRECTORY_SEPARATOR": { "ext.name": "standard", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "DNS_A": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_A6": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_AAAA": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_ANY": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_CNAME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_HINFO": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_MX": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_NAPTR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_NS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_PTR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_SOA": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_SRV": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DNS_TXT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "DOMSTRING_SIZE_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_HIERARCHY_REQUEST_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INDEX_SIZE_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INUSE_ATTRIBUTE_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INVALID_ACCESS_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INVALID_CHARACTER_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INVALID_MODIFICATION_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_INVALID_STATE_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_NAMESPACE_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_NOT_FOUND_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_NOT_SUPPORTED_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_NO_DATA_ALLOWED_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_NO_MODIFICATION_ALLOWED_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_PHP_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_SYNTAX_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_VALIDATION_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "DOM_WRONG_DOCUMENT_ERR": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "D_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "D_T_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ENC7BIT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENC8BIT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENCBASE64": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENCBINARY": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENCHANT_ISPELL": { "ext.name": "enchant", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ENCHANT_MYSPELL": { "ext.name": "enchant", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ENCOTHER": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENCQUOTEDPRINTABLE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENT_COMPAT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENT_DISALLOWED": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ENT_HTML401": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ENT_HTML5": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ENT_IGNORE": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ENT_NOQUOTES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENT_QUOTES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ENT_SUBSTITUTE": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ENT_XHTML": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ENT_XML1": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ERA": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ERA_D_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ERA_D_T_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ERA_T_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "EVBUFFER_EOF": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVBUFFER_ERROR": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVBUFFER_READ": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVBUFFER_TIMEOUT": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVBUFFER_WRITE": { "ext.name": "libevent", "ext.min": "0.0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVLOOP_NONBLOCK": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EVLOOP_ONCE": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EV_PERSIST": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EV_READ": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EV_SIGNAL": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EV_TIMEOUT": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EV_WRITE": { "ext.name": "libevent", "ext.min": "0.0.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "EXIF_USE_MBSTRING": { "ext.name": "exif", "ext.min": "4.0.1", "ext.max": null, "php.min": "4.0.1", "php.max": null }, "EXTR_IF_EXISTS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_OVERWRITE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_PREFIX_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_PREFIX_IF_EXISTS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_PREFIX_INVALID": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_PREFIX_SAME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_REFS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "EXTR_SKIP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_ALL": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_COMPILE_ERROR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_COMPILE_WARNING": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_CORE_ERROR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_CORE_WARNING": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_DEPRECATED": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "E_ERROR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_NOTICE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_PARSE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_RECOVERABLE_ERROR": { "ext.name": "Core", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "E_STRICT": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "E_USER_DEPRECATED": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "E_USER_ERROR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_USER_NOTICE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_USER_WARNING": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "E_WARNING": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FALSE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_COMPRESS": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.2.17" }, "FILEINFO_CONTINUE": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_DEVICES": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_MIME": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_MIME_ENCODING": { "ext.name": "fileinfo", "ext.min": "1.0.5-dev", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FILEINFO_MIME_TYPE": { "ext.name": "fileinfo", "ext.min": "1.0.5-dev", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FILEINFO_NONE": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_PRESERVE_ATIME": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_RAW": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILEINFO_SYMLINK": { "ext.name": "fileinfo", "ext.min": "0.1.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILE_APPEND": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILE_BINARY": { "ext.name": "standard", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "FILE_IGNORE_NEW_LINES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILE_NO_DEFAULT_CONTEXT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILE_SKIP_EMPTY_LINES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILE_TEXT": { "ext.name": "standard", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "FILE_USE_INCLUDE_PATH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_CALLBACK": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_DEFAULT": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ALLOW_FRACTION": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ALLOW_HEX": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ALLOW_OCTAL": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ALLOW_SCIENTIFIC": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ALLOW_THOUSAND": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ARRAY": { "ext.name": "filter", "ext.min": "0.10.0", "ext.max": "0.10.0", "php.min": "5.0.0", "php.max": null }, "FILTER_FLAG_EMPTY_STRING_NULL": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ENCODE_AMP": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ENCODE_HIGH": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_ENCODE_LOW": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_HOST_REQUIRED": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_IPV4": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_IPV6": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_NONE": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_NO_ENCODE_QUOTES": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_NO_PRIV_RANGE": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_NO_RES_RANGE": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_PATH_REQUIRED": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_QUERY_REQUIRED": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_SCALAR": { "ext.name": "filter", "ext.min": "0.10.0", "ext.max": "0.10.0", "php.min": "5.0.0", "php.max": null }, "FILTER_FLAG_SCHEME_REQUIRED": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_STRIP_BACKTICK": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "FILTER_FLAG_STRIP_HIGH": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FLAG_STRIP_LOW": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_FORCE_ARRAY": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "FILTER_NULL_ON_FAILURE": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "FILTER_REQUIRE_ARRAY": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "FILTER_REQUIRE_SCALAR": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "FILTER_SANITIZE_ALL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_EMAIL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_ENCODED": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_FULL_SPECIAL_CHARS": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.3.3", "php.max": null }, "FILTER_SANITIZE_MAGIC_QUOTES": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_NUMBER_FLOAT": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_NUMBER_INT": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_SPECIAL_CHARS": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_STRING": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_STRIPPED": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_SANITIZE_URL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_UNSAFE_RAW": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_ALL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_BOOLEAN": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_EMAIL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_FLOAT": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_INT": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_IP": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_MAC": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "FILTER_VALIDATE_REGEXP": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FILTER_VALIDATE_URL": { "ext.name": "filter", "ext.min": "0.9.4", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FNM_CASEFOLD": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FNM_NOESCAPE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FNM_PATHNAME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FNM_PERIOD": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FORCE_DEFLATE": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FORCE_GZIP": { "ext.name": "zlib", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FPE_FLTDIV": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_FLTINV": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_FLTOVF": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_FLTRES": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_FLTSUB": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_FLTUND": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_INTDIV": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FPE_INTOVF": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "FTP_ASCII": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FTP_AUTORESUME": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "FTP_AUTOSEEK": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "FTP_BINARY": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FTP_FAILED": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "FTP_FINISHED": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "FTP_IMAGE": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FTP_MOREDATA": { "ext.name": "ftp", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "FTP_TEXT": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FTP_TIMEOUT_SEC": { "ext.name": "ftp", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FT_INTERNAL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FT_NOT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FT_PEEK": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FT_PREFETCHTEXT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "FT_UID": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GD_BUNDLED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GD_EXTRA_VERSION": { "ext.name": "gd", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GD_MAJOR_VERSION": { "ext.name": "gd", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GD_MINOR_VERSION": { "ext.name": "gd", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GD_RELEASE_VERSION": { "ext.name": "gd", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GD_VERSION": { "ext.name": "gd", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GEOIP_ASNUM_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_CABLEDSL_SPEED": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_CITY_EDITION_REV0": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_CITY_EDITION_REV1": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_CORPORATE_SPEED": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_COUNTRY_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_DIALUP_SPEED": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_DOMAIN_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_ISP_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_NETSPEED_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_NETSPEED_EDITION_REV1": { "ext.name": "geoip", "ext.min": "1.1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_ORG_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_PROXY_EDITION": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_REGION_EDITION_REV0": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_REGION_EDITION_REV1": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GEOIP_UNKNOWN_SPEED": { "ext.name": "geoip", "ext.min": "0.2.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "GLOB_AVAILABLE_FLAGS": { "ext.name": "standard", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GLOB_BRACE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_ERR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_MARK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_NOCHECK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_NOESCAPE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_NOSORT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GLOB_ONLYDIR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "GMP_BIG_ENDIAN": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "GMP_LITTLE_ENDIAN": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "GMP_LSW_FIRST": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "GMP_MPIR_VERSION": { "ext.name": "gmp", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "GMP_MSW_FIRST": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "GMP_NATIVE_ENDIAN": { "ext.name": "gmp", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "GMP_ROUND_MINUSINF": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "GMP_ROUND_PLUSINF": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "GMP_ROUND_ZERO": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "GMP_VERSION": { "ext.name": "gmp", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "GRAPHEME_EXTR_COUNT": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GRAPHEME_EXTR_MAXBYTES": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "GRAPHEME_EXTR_MAXCHARS": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "HASH_HMAC": { "ext.name": "hash", "ext.min": "1.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "HTML_ENTITIES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "HTML_SPECIALCHARS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "HTTP_AUTH_ANY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_AUTH_BASIC": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_AUTH_DIGEST": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_AUTH_DIGEST_IE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_AUTH_GSSNEG": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_AUTH_NTLM": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_COOKIE_HTTPONLY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_COOKIE_PARSE_RAW": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_COOKIE_SECURE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_LEVEL_DEF": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_LEVEL_MAX": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_LEVEL_MIN": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_STRATEGY_DEF": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_STRATEGY_FILT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_STRATEGY_FIXED": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_STRATEGY_HUFF": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_STRATEGY_RLE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_TYPE_GZIP": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_TYPE_RAW": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_DEFLATE_TYPE_ZLIB": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_ENCODING_STREAM_FLUSH_FULL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_ENCODING_STREAM_FLUSH_NONE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_ENCODING_STREAM_FLUSH_SYNC": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_ENCODING": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_HEADER": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_INVALID_PARAM": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_MALFORMED_HEADERS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_MESSAGE_TYPE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_QUERYSTRING": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_REQUEST": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_REQUEST_METHOD": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_REQUEST_POOL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_RESPONSE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_RUNTIME": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_SOCKET": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_E_URL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_IPRESOLVE_ANY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_IPRESOLVE_V4": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_IPRESOLVE_V6": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_ACL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_BASELINE_CONTROL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_CHECKIN": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_CHECKOUT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_CONNECT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_COPY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_DELETE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_GET": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_HEAD": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_LABEL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_LOCK": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_MERGE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_MKACTIVITY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_MKCOL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_MKWORKSPACE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_MOVE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_OPTIONS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_POST": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_PROPFIND": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_PROPPATCH": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_PUT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_REPORT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_TRACE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_UNCHECKOUT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_UNLOCK": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_UPDATE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_METH_VERSION_CONTROL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_MSG_NONE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_MSG_REQUEST": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_MSG_RESPONSE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PARAMS_ALLOW_COMMA": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PARAMS_ALLOW_FAILURE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PARAMS_DEFAULT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PARAMS_RAISE_ERROR": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_POSTREDIR_301": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_POSTREDIR_302": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_POSTREDIR_ALL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_HTTP": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_HTTP_1_0": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_SOCKS4": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_SOCKS4A": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_SOCKS5": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_PROXY_SOCKS5_HOSTNAME": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_ARRAY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_BOOL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_FLOAT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_INT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_OBJECT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_QUERYSTRING_TYPE_STRING": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT_FOUND": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT_PERM": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT_POST": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT_PROXY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_REDIRECT_TEMP": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SSL_VERSION_ANY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SSL_VERSION_SSLv2": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SSL_VERSION_SSLv3": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SSL_VERSION_TLSv1": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT_ENCODINGS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT_EVENTS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT_MAGICMIME": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT_REQUESTS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_SUPPORT_SSLREQUESTS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_FROM_ENV": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_JOIN_PATH": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_JOIN_QUERY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_REPLACE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_ALL": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_AUTH": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_FRAGMENT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_PASS": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_PATH": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_PORT": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_QUERY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_URL_STRIP_USER": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_VERSION_1_0": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_VERSION_1_1": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_VERSION_ANY": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "HTTP_VERSION_NONE": { "ext.name": "http", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.3.0", "php.max": "5.5.30" }, "ICONV_IMPL": { "ext.name": "iconv", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "ICONV_MIME_DECODE_CONTINUE_ON_ERROR": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ICONV_MIME_DECODE_STRICT": { "ext.name": "iconv", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ICONV_VERSION": { "ext.name": "iconv", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "IDNA_ALLOW_UNASSIGNED": { "ext.name": "intl", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_CHECK_BIDI": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_CHECK_CONTEXTJ": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_DEFAULT": { "ext.name": "intl", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_BIDI": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_CONTEXTJ": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_DISALLOWED": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_DOMAIN_NAME_TOO_LONG": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_EMPTY_LABEL": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_HYPHEN_3_4": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_INVALID_ACE_LABEL": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_LABEL_HAS_DOT": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_LABEL_TOO_LONG": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_LEADING_COMBINING_MARK": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_LEADING_HYPHEN": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_PUNYCODE": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_ERROR_TRAILING_HYPHEN": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_NONTRANSITIONAL_TO_ASCII": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_NONTRANSITIONAL_TO_UNICODE": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IDNA_USE_STD3_RULES": { "ext.name": "intl", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "ILL_BADSTK": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_COPROC": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_ILLADR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_ILLOPC": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_ILLOPN": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_ILLTRP": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_PRVOPC": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ILL_PRVREG": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAGETYPE_BMP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_COUNT": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAGETYPE_GIF": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_ICO": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAGETYPE_IFF": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JB2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JP2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JPC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JPEG": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JPEG2000": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_JPX": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_PNG": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_PSD": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_SWC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_SWF": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_TIFF_II": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_TIFF_MM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_UNKNOWN": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAGETYPE_WBMP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAGETYPE_XBM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAP_CLOSETIMEOUT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAP_GC_ELT": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAP_GC_ENV": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAP_GC_TEXTS": { "ext.name": "imap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMAP_OPENTIMEOUT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAP_READTIMEOUT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMAP_WRITETIMEOUT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_AFFINE_ROTATE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_AFFINE_SCALE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_AFFINE_SHEAR_HORIZONTAL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_AFFINE_SHEAR_VERTICAL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_AFFINE_TRANSLATE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_ARC_CHORD": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_ARC_EDGED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_ARC_NOFILL": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_ARC_PIE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_ARC_ROUNDED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_BELL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BESSEL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BICUBIC": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BICUBIC_FIXED": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BILINEAR_FIXED": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BLACKMAN": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BOX": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_BSPLINE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CATMULLROM": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_COLOR_BRUSHED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_COLOR_STYLED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_COLOR_STYLEDBRUSHED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_COLOR_TILED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_COLOR_TRANSPARENT": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_CROP_BLACK": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CROP_DEFAULT": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CROP_SIDES": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CROP_THRESHOLD": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CROP_TRANSPARENT": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_CROP_WHITE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_EFFECT_ALPHABLEND": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_EFFECT_NORMAL": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_EFFECT_OVERLAY": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_EFFECT_REPLACE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_BRIGHTNESS": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_COLORIZE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_CONTRAST": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_EDGEDETECT": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_EMBOSS": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_GAUSSIAN_BLUR": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_GRAYSCALE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_MEAN_REMOVAL": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_NEGATE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_PIXELATE": { "ext.name": "gd", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "IMG_FILTER_SELECTIVE_BLUR": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FILTER_SMOOTH": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_FLIP_BOTH": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_FLIP_HORIZONTAL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_FLIP_VERTICAL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_GAUSSIAN": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_GD2_COMPRESSED": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_GD2_RAW": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_GENERALIZED_CUBIC": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_GIF": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_HAMMING": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_HANNING": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_HERMITE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_JPEG": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_JPG": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_MITCHELL": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_NEAREST_NEIGHBOUR": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_PNG": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_POWER": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_QUADRATIC": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_SINC": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_TRIANGLE": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_WBMP": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "IMG_WEIGHTED4": { "ext.name": "gd", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IMG_XPM": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INF": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_CONFIGURATION": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_CREDITS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_ENVIRONMENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_GENERAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_LICENSE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_MODULES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INFO_VARIABLES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INI_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INI_PERDIR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INI_SCANNER_NORMAL": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "INI_SCANNER_RAW": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "INI_SCANNER_TYPED": { "ext.name": "standard", "ext.min": "5.6.1RC1", "ext.max": null, "php.min": "5.6.1RC1", "php.max": null }, "INI_SYSTEM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INI_USER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_COOKIE": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_ENV": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_GET": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_POST": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_REQUEST": { "ext.name": "filter", "ext.min": "0.11.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "INPUT_SERVER": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INPUT_SESSION": { "ext.name": "filter", "ext.min": "0.9.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "INTL_ICU_DATA_VERSION": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "INTL_ICU_VERSION": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "INTL_IDNA_VARIANT_2003": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "INTL_IDNA_VARIANT_UTS46": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "INTL_MAX_LOCALE_LEN": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "IPPROTO_IP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IPPROTO_IPV6": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IPV6_HOPLIMIT": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_MULTICAST_HOPS": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IPV6_MULTICAST_IF": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IPV6_MULTICAST_LOOP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IPV6_PKTINFO": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_RECVHOPLIMIT": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_RECVPKTINFO": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_RECVTCLASS": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_TCLASS": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IPV6_UNICAST_HOPS": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "IP_MULTICAST_IF": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IP_MULTICAST_LOOP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "IP_MULTICAST_TTL": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "JSMIN_ERROR_NONE": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "JSMIN_ERROR_UNTERMINATED_COMMENT": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "JSMIN_ERROR_UNTERMINATED_REGEX": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "JSMIN_ERROR_UNTERMINATED_STRING": { "ext.name": "jsmin", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.10", "php.max": null }, "JSON_BIGINT_AS_STRING": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "JSON_ERROR_CTRL_CHAR": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_ERROR_DEPTH": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_ERROR_INF_OR_NAN": { "ext.name": "json", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "JSON_ERROR_NONE": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_ERROR_RECURSION": { "ext.name": "json", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "JSON_ERROR_STATE_MISMATCH": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_ERROR_SYNTAX": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_ERROR_UNSUPPORTED_TYPE": { "ext.name": "json", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "JSON_ERROR_UTF8": { "ext.name": "json", "ext.min": "5.3.3", "ext.max": null, "php.min": "5.3.3", "php.max": null }, "JSON_FORCE_OBJECT": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_HEX_AMP": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_HEX_APOS": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_HEX_QUOT": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_HEX_TAG": { "ext.name": "json", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "JSON_NUMERIC_CHECK": { "ext.name": "json", "ext.min": "5.3.3", "ext.max": null, "php.min": "5.3.3", "php.max": null }, "JSON_OBJECT_AS_ARRAY": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "JSON_PARTIAL_OUTPUT_ON_ERROR": { "ext.name": "json", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "JSON_PRESERVE_ZERO_FRACTION": { "ext.name": "json", "ext.min": "5.6.6RC1", "ext.max": null, "php.min": "5.6.6RC1", "php.max": null }, "JSON_PRETTY_PRINT": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "JSON_UNESCAPED_SLASHES": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "JSON_UNESCAPED_UNICODE": { "ext.name": "json", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "LATT_HASCHILDREN": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_HASNOCHILDREN": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_MARKED": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_NOINFERIORS": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_NOSELECT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_REFERRAL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LATT_UNMARKED": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_COLLATE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_CTYPE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_MESSAGES": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_MONETARY": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_NUMERIC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LC_TIME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_DEREF_ALWAYS": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_DEREF_FINDING": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_DEREF_NEVER": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_DEREF_SEARCHING": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_ESCAPE_DN": { "ext.name": "ldap", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "LDAP_ESCAPE_FILTER": { "ext.name": "ldap", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "LDAP_MODIFY_BATCH_ADD": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_ATTRIB": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_MODTYPE": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_REMOVE": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_REMOVE_ALL": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_REPLACE": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_MODIFY_BATCH_VALUES": { "ext.name": "ldap", "ext.min": "5.4.26", "ext.max": null, "php.min": "5.4.26", "php.max": null }, "LDAP_OPT_CLIENT_CONTROLS": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_DEBUG_LEVEL": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_DEREF": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_DIAGNOSTIC_MESSAGE": { "ext.name": "ldap", "ext.min": "5.6.11RC1", "ext.max": null, "php.min": "5.6.11RC1", "php.max": null }, "LDAP_OPT_ERROR_NUMBER": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_ERROR_STRING": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_HOST_NAME": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_MATCHED_DN": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_NETWORK_TIMEOUT": { "ext.name": "ldap", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "LDAP_OPT_PROTOCOL_VERSION": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_REFERRALS": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_RESTART": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_SERVER_CONTROLS": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_SIZELIMIT": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_TIMELIMIT": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_TIMEOUT": { "ext.name": "ldap", "ext.min": "5.6.14RC1", "ext.max": null, "php.min": "5.6.14RC1", "php.max": null }, "LDAP_OPT_X_SASL_AUTHCID": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_X_SASL_AUTHZID": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_X_SASL_MECH": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LDAP_OPT_X_SASL_REALM": { "ext.name": "ldap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LIBEXSLT_DOTTED_VERSION": { "ext.name": "xsl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "LIBEXSLT_VERSION": { "ext.name": "xsl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "LIBXML_COMPACT": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_DOTTED_VERSION": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_DTDATTR": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_DTDLOAD": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_DTDVALID": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_ERR_ERROR": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_ERR_FATAL": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_ERR_NONE": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_ERR_WARNING": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_HTML_NODEFDTD": { "ext.name": "libxml", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "LIBXML_HTML_NOIMPLIED": { "ext.name": "libxml", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "LIBXML_LOADED_VERSION": { "ext.name": "libxml", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "LIBXML_NOBLANKS": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOCDATA": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOEMPTYTAG": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOENT": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOERROR": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NONET": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOWARNING": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NOXMLDECL": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_NSCLEAN": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_PARSEHUGE": { "ext.name": "libxml", "ext.min": "5.2.12", "ext.max": null, "php.min": "5.2.12", "php.max": null }, "LIBXML_PEDANTIC": { "ext.name": "libxml", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "LIBXML_SCHEMA_CREATE": { "ext.name": "libxml", "ext.min": "5.5.2", "ext.max": null, "php.min": "5.5.2", "php.max": null }, "LIBXML_VERSION": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXML_XINCLUDE": { "ext.name": "libxml", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "LIBXSLT_DOTTED_VERSION": { "ext.name": "xsl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "LIBXSLT_VERSION": { "ext.name": "xsl", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "LOCK_EX": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOCK_NB": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOCK_SH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOCK_UN": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_ALERT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_AUTH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_AUTHPRIV": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_CONS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_CRIT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_CRON": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_DAEMON": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_DEBUG": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_EMERG": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_ERR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_INFO": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_KERN": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL0": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL1": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL3": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL4": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL5": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL6": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LOCAL7": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_LPR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_MAIL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_NDELAY": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_NEWS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_NOTICE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_NOWAIT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_ODELAY": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_PERROR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_PID": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_SYSLOG": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_USER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_UUCP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "LOG_WARNING": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MAILPARSE_EXTRACT_OUTPUT": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MAILPARSE_EXTRACT_RETURN": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MAILPARSE_EXTRACT_STREAM": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MB_CASE_LOWER": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MB_CASE_TITLE": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MB_CASE_UPPER": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MB_OVERLOAD_MAIL": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MB_OVERLOAD_REGEX": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MB_OVERLOAD_STRING": { "ext.name": "mbstring", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "MCAST_BLOCK_SOURCE": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCAST_JOIN_GROUP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCAST_JOIN_SOURCE_GROUP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCAST_LEAVE_GROUP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCAST_LEAVE_SOURCE_GROUP": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCAST_UNBLOCK_SOURCE": { "ext.name": "sockets", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MCRYPT_3DES": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_ARCFOUR": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_ARCFOUR_IV": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_BLOWFISH": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_CAST_128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_CAST_256": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_CRYPT": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_DECRYPT": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_DES": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_DES_COMPAT": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_DEV_RANDOM": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_DEV_URANDOM": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_ENCRYPT": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_ENIGNA": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_GOST": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_IDEA": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_LOKI97": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MARS": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_CBC": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_CFB": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_ECB": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_NOFB": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_OFB": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_MODE_STREAM": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_PANAMA": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RAND": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC2": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC4": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC6": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC6_128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC6_192": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RC6_256": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RIJNDAEL_128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RIJNDAEL_192": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_RIJNDAEL_256": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SAFER128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SAFER64": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SAFERPLUS": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SERPENT": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SERPENT_128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SERPENT_192": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SERPENT_256": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_SKIPJACK": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TEAN": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_THREEWAY": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TRIPLEDES": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TWOFISH": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TWOFISH128": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TWOFISH192": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_TWOFISH256": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_WAKE": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MCRYPT_XTEA": { "ext.name": "mcrypt", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MEMCACHE_COMPRESSED": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "MEMCACHE_HAVE_SESSION": { "ext.name": "memcache", "ext.min": "2.2.0", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "MEMCACHE_SERIALIZED": { "ext.name": "memcache", "ext.min": "0.2", "ext.max": "0.2", "php.min": "4.3.3", "php.max": null }, "MEMCACHE_USER1": { "ext.name": "memcache", "ext.min": "3.0.8", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "MEMCACHE_USER2": { "ext.name": "memcache", "ext.min": "3.0.8", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "MEMCACHE_USER3": { "ext.name": "memcache", "ext.min": "3.0.8", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "MEMCACHE_USER4": { "ext.name": "memcache", "ext.min": "3.0.8", "ext.max": null, "php.min": "4.3.11", "php.max": null }, "MHASH_ADLER32": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_CRC32": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_CRC32B": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_FNV132": { "ext.name": "hash", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MHASH_FNV164": { "ext.name": "hash", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MHASH_FNV1A32": { "ext.name": "hash", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MHASH_FNV1A64": { "ext.name": "hash", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MHASH_GOST": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_HAVAL128": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_HAVAL160": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_HAVAL192": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_HAVAL224": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_HAVAL256": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_JOAAT": { "ext.name": "hash", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "MHASH_MD2": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_MD4": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_MD5": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_RIPEMD128": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_RIPEMD160": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_RIPEMD256": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_RIPEMD320": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SHA1": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SHA224": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SHA256": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SHA384": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SHA512": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SNEFRU128": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_SNEFRU256": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_TIGER": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_TIGER128": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_TIGER160": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MHASH_WHIRLPOOL": { "ext.name": "mhash", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MONGO_STREAMS": { "ext.name": "mongo", "ext.min": "1.4.2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_IO_COMPLETED": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_IO_PROGRESS": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_IO_READ": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_IO_WRITE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_BATCHINSERT": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_CMD_DELETE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_CMD_INSERT": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_CMD_UPDATE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_DELETE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_GETMORE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_INSERT": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_KILLCURSOR": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_QUERY": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_RESPONSE_HEADER": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_UPDATE": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_WRITE_BATCH": { "ext.name": "mongo", "ext.min": "1.5.0RC1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_LOG_WRITE_REPLY": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_TYPE_IO_INIT": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_STREAM_NOTIFY_TYPE_LOG": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_AUTH_MECHANISM_GSSAPI": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_CR": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_X509": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_AUTH_MECHANISM_PLAIN": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_AUTH_MECHANISM_SCRAM_SHA1": { "ext.name": "mongo", "ext.min": "1.6.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MONGO_SUPPORTS_SSL": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MONGO_SUPPORTS_STREAMS": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "MON_1": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_10": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_11": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_12": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_2": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_3": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_4": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_5": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_6": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_7": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_8": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MON_9": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MSG_CMSG_CLOEXEC": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_CONFIRM": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_CTRUNC": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_DONTROUTE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MSG_DONTWAIT": { "ext.name": "sockets", "ext.min": "5.2.10", "ext.max": null, "php.min": "5.2.10", "php.max": null }, "MSG_EAGAIN": { "ext.name": "sysvmsg", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MSG_ENOMSG": { "ext.name": "sysvmsg", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "MSG_EOF": { "ext.name": "sockets", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "MSG_EOR": { "ext.name": "sockets", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "MSG_ERRQUEUE": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_EXCEPT": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MSG_IPC_NOWAIT": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MSG_MORE": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_NOERROR": { "ext.name": "sysvmsg", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MSG_NOSIGNAL": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_OOB": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MSG_PEEK": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MSG_TRUNC": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSG_WAITALL": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "MSG_WAITFORONE": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MSSQL_ASSOC": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MSSQL_BOTH": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MSSQL_NUM": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MYSQLI_ASSOC": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_ASYNC": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_AUTO_INCREMENT_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_BINARY_FLAG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_BLOB_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_BOTH": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS": { "ext.name": "mysqli", "ext.min": "5.6.0RC3", "ext.max": null, "php.min": "5.6.0RC3", "php.max": null }, "MYSQLI_CLIENT_COMPRESS": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_FOUND_ROWS": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_IGNORE_SPACE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_INTERACTIVE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_NO_SCHEMA": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CLIENT_SSL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CURSOR_TYPE_FOR_UPDATE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CURSOR_TYPE_NO_CURSOR": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CURSOR_TYPE_READ_ONLY": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_CURSOR_TYPE_SCROLLABLE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_DATA_TRUNCATED": { "ext.name": "mysqli", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "MYSQLI_DEBUG_TRACE_ENABLED": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_ENUM_FLAG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_GROUP_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_INIT_COMMAND": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_MULTIPLE_KEY_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_NOT_NULL_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_NO_DATA": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_NO_DEFAULT_VALUE_FLAG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_NUM": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_NUM_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_ON_UPDATE_NOW_FLAG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS": { "ext.name": "mysqli", "ext.min": "5.4.12", "ext.max": null, "php.min": "5.4.12", "php.max": null }, "MYSQLI_OPT_CONNECT_TIMEOUT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_OPT_INT_AND_FLOAT_NATIVE": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_OPT_LOCAL_INFILE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_OPT_NET_CMD_BUFFER_SIZE": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_OPT_NET_READ_BUFFER_SIZE": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_OPT_SSL_VERIFY_SERVER_CERT": { "ext.name": "mysqli", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "MYSQLI_PART_KEY_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_PRI_KEY_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_READ_DEFAULT_FILE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_READ_DEFAULT_GROUP": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_REFRESH_BACKUP_LOG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_GRANT": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_HOSTS": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_LOG": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_MASTER": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_SLAVE": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_STATUS": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_TABLES": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REFRESH_THREADS": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_REPORT_ALL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_REPORT_ERROR": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_REPORT_INDEX": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_REPORT_OFF": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_REPORT_STRICT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_RPL_ADMIN": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "MYSQLI_RPL_MASTER": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "MYSQLI_RPL_SLAVE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": "5.2.17" }, "MYSQLI_SERVER_PS_OUT_PARAMS": { "ext.name": "mysqli", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "MYSQLI_SERVER_PUBLIC_KEY": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_SERVER_QUERY_NO_INDEX_USED": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_SERVER_QUERY_WAS_SLOW": { "ext.name": "mysqli", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "MYSQLI_SET_CHARSET_DIR": { "ext.name": "mysqli", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "MYSQLI_SET_CHARSET_NAME": { "ext.name": "mysqli", "ext.min": "5.2.5", "ext.max": null, "php.min": "5.2.5", "php.max": null }, "MYSQLI_SET_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_STMT_ATTR_CURSOR_TYPE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_STMT_ATTR_PREFETCH_ROWS": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_STORE_RESULT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_STORE_RESULT_COPY_DATA": { "ext.name": "mysqli", "ext.min": "5.6.0beta2", "ext.max": null, "php.min": "5.6.0beta2", "php.max": null }, "MYSQLI_TIMESTAMP_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TRANS_COR_AND_CHAIN": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_COR_AND_NO_CHAIN": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_COR_NO_RELEASE": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_COR_RELEASE": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_START_READ_ONLY": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_START_READ_WRITE": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT": { "ext.name": "mysqli", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "MYSQLI_TYPE_BIT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_BLOB": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_CHAR": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_DATE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_DATETIME": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_DECIMAL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_DOUBLE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_ENUM": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_FLOAT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_GEOMETRY": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_INT24": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_INTERVAL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_LONG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_LONGLONG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_LONG_BLOB": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_MEDIUM_BLOB": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_NEWDATE": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_NEWDECIMAL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_NULL": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_SET": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_SHORT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_STRING": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_TIME": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_TIMESTAMP": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_TINY": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_TINY_BLOB": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_VAR_STRING": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_TYPE_YEAR": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_UNIQUE_KEY_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_UNSIGNED_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_USE_RESULT": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQLI_ZEROFILL_FLAG": { "ext.name": "mysqli", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "MYSQL_ASSOC": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MYSQL_BOTH": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "MYSQL_CLIENT_COMPRESS": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MYSQL_CLIENT_IGNORE_SPACE": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MYSQL_CLIENT_INTERACTIVE": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MYSQL_CLIENT_SSL": { "ext.name": "mysql", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "MYSQL_NUM": { "ext.name": "mysql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_1_PI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_2_PI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_2_SQRTPI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_E": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_EULER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_LN10": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_LN2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_LNPI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_LOG10E": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_LOG2E": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_PI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_PI_2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_PI_4": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_SQRT1_2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_SQRT2": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_SQRT3": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "M_SQRTPI": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "NAN": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "NIL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "NOEXPR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "NULL": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OAUTH_AUTH_TYPE_AUTHORIZATION": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_AUTH_TYPE_FORM": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_AUTH_TYPE_NONE": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_AUTH_TYPE_URI": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_BAD_NONCE": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_BAD_TIMESTAMP": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_CONSUMER_KEY_REFUSED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_CONSUMER_KEY_UNKNOWN": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_HTTP_METHOD_DELETE": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_HTTP_METHOD_GET": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_HTTP_METHOD_HEAD": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_HTTP_METHOD_POST": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_HTTP_METHOD_PUT": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_INVALID_SIGNATURE": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_OK": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_PARAMETER_ABSENT": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_REQENGINE_CURL": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_REQENGINE_STREAMS": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SIGNATURE_METHOD_REJECTED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SIG_METHOD_HMACSHA1": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SIG_METHOD_HMACSHA256": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SIG_METHOD_PLAINTEXT": { "ext.name": "OAuth", "ext.min": "1.2", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SIG_METHOD_RSASHA1": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SSLCHECK_BOTH": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SSLCHECK_HOST": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SSLCHECK_NONE": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_SSLCHECK_PEER": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_TOKEN_EXPIRED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_TOKEN_REJECTED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_TOKEN_REVOKED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_TOKEN_USED": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "OAUTH_VERIFIER_INVALID": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "ODBC_BINMODE_CONVERT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ODBC_BINMODE_PASSTHRU": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ODBC_BINMODE_RETURN": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ODBC_TYPE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OPENSSL_ALGO_DSS1": { "ext.name": "openssl", "ext.min": "5.2.8", "ext.max": null, "php.min": "5.2.8", "php.max": null }, "OPENSSL_ALGO_MD2": { "ext.name": "openssl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "OPENSSL_ALGO_MD4": { "ext.name": "openssl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "OPENSSL_ALGO_MD5": { "ext.name": "openssl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "OPENSSL_ALGO_RMD160": { "ext.name": "openssl", "ext.min": "5.4.8", "ext.max": null, "php.min": "5.4.8", "php.max": null }, "OPENSSL_ALGO_SHA1": { "ext.name": "openssl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "OPENSSL_ALGO_SHA224": { "ext.name": "openssl", "ext.min": "5.4.8", "ext.max": null, "php.min": "5.4.8", "php.max": null }, "OPENSSL_ALGO_SHA256": { "ext.name": "openssl", "ext.min": "5.4.8", "ext.max": null, "php.min": "5.4.8", "php.max": null }, "OPENSSL_ALGO_SHA384": { "ext.name": "openssl", "ext.min": "5.4.8", "ext.max": null, "php.min": "5.4.8", "php.max": null }, "OPENSSL_ALGO_SHA512": { "ext.name": "openssl", "ext.min": "5.4.8", "ext.max": null, "php.min": "5.4.8", "php.max": null }, "OPENSSL_CIPHER_3DES": { "ext.name": "openssl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "OPENSSL_CIPHER_AES_128_CBC": { "ext.name": "openssl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "OPENSSL_CIPHER_AES_192_CBC": { "ext.name": "openssl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "OPENSSL_CIPHER_AES_256_CBC": { "ext.name": "openssl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "OPENSSL_CIPHER_DES": { "ext.name": "openssl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "OPENSSL_CIPHER_RC2_128": { "ext.name": "openssl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "OPENSSL_CIPHER_RC2_40": { "ext.name": "openssl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "OPENSSL_CIPHER_RC2_64": { "ext.name": "openssl", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "OPENSSL_DEFAULT_STREAM_CIPHERS": { "ext.name": "openssl", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "OPENSSL_KEYTYPE_DH": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_KEYTYPE_DSA": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_KEYTYPE_EC": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_KEYTYPE_RSA": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_NO_PADDING": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_PKCS1_OAEP_PADDING": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_PKCS1_PADDING": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_RAW_DATA": { "ext.name": "openssl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "OPENSSL_SSLV23_PADDING": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "OPENSSL_TLSEXT_SERVER_NAME": { "ext.name": "openssl", "ext.min": "5.3.2", "ext.max": null, "php.min": "5.3.2", "php.max": null }, "OPENSSL_VERSION_NUMBER": { "ext.name": "openssl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "OPENSSL_VERSION_TEXT": { "ext.name": "openssl", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "OPENSSL_ZERO_PADDING": { "ext.name": "openssl", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "OP_ANONYMOUS": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_DEBUG": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_EXPUNGE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_HALFOPEN": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_PROTOTYPE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_READONLY": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_SECURE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_SHORTCACHE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "OP_SILENT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PASSWORD_BCRYPT": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "PASSWORD_BCRYPT_DEFAULT_COST": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "PASSWORD_DEFAULT": { "ext.name": "standard", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "PATHINFO_BASENAME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PATHINFO_DIRNAME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PATHINFO_EXTENSION": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PATHINFO_FILENAME": { "ext.name": "standard", "ext.min": "5.2.0RC1", "ext.max": null, "php.min": "5.2.0RC1", "php.max": null }, "PATH_SEPARATOR": { "ext.name": "standard", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "PCNTL_E2BIG": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EACCES": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EAGAIN": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ECHILD": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EFAULT": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EINTR": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EINVAL": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EIO": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EISDIR": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ELIBBAD": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ELOOP": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EMFILE": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENAMETOOLONG": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENFILE": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENOENT": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENOEXEC": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENOMEM": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ENOTDIR": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_EPERM": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ESRCH": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCNTL_ETXTBSY": { "ext.name": "pcntl", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": null }, "PCRE_VERSION": { "ext.name": "pcre", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "PEAR_EXTENSION_DIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PEAR_INSTALL_DIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_ASSOC": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_BAD_RESPONSE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_BOTH": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_COMMAND_OK": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONNECTION_AUTH_OK": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECTION_AWAITING_RESPONSE": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECTION_BAD": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONNECTION_MADE": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECTION_OK": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONNECTION_SETENV": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECTION_SSL_STARTUP": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECTION_STARTED": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECT_ASYNC": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_CONNECT_FORCE_NEW": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONV_FORCE_NULL": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONV_IGNORE_DEFAULT": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_CONV_IGNORE_NOT_NULL": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_COPY_IN": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_COPY_OUT": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_CONTEXT": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_INTERNAL_POSITION": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_INTERNAL_QUERY": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_MESSAGE_DETAIL": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_MESSAGE_HINT": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_MESSAGE_PRIMARY": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_SEVERITY": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_SOURCE_FILE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_SOURCE_FUNCTION": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_SOURCE_LINE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_SQLSTATE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DIAG_STATEMENT_POSITION": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DML_ASYNC": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DML_ESCAPE": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_DML_EXEC": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DML_NO_CONV": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_DML_STRING": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_EMPTY_QUERY": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_ERRORS_DEFAULT": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_ERRORS_TERSE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_ERRORS_VERBOSE": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_FATAL_ERROR": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_LIBPQ_VERSION": { "ext.name": "pgsql", "ext.min": "5.4.4", "ext.max": null, "php.min": "5.4.4", "php.max": null }, "PGSQL_LIBPQ_VERSION_STR": { "ext.name": "pgsql", "ext.min": "5.4.4", "ext.max": null, "php.min": "5.4.4", "php.max": null }, "PGSQL_NONFATAL_ERROR": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_NUM": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_POLLING_ACTIVE": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_POLLING_FAILED": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_POLLING_OK": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_POLLING_READING": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_POLLING_WRITING": { "ext.name": "pgsql", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "PGSQL_SEEK_CUR": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_SEEK_END": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_SEEK_SET": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_STATUS_LONG": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_STATUS_STRING": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PGSQL_TRANSACTION_ACTIVE": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PGSQL_TRANSACTION_IDLE": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PGSQL_TRANSACTION_INERROR": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PGSQL_TRANSACTION_INTRANS": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PGSQL_TRANSACTION_UNKNOWN": { "ext.name": "pgsql", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PGSQL_TUPLES_OK": { "ext.name": "pgsql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_BINARY": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_BINARY_READ": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "PHP_BINDIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_CONFIG_FILE_PATH": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_CONFIG_FILE_SCAN_DIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_DATADIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_DEBUG": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_EOL": { "ext.name": "Core", "ext.min": "4.3.10", "ext.max": null, "php.min": "4.3.10", "php.max": null }, "PHP_EXTENSION_DIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_EXTRA_VERSION": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_INT_MAX": { "ext.name": "Core", "ext.min": "4.4.0", "ext.max": null, "php.min": "4.4.0", "php.max": null }, "PHP_INT_SIZE": { "ext.name": "Core", "ext.min": "4.4.0", "ext.max": null, "php.min": "4.4.0", "php.max": null }, "PHP_LIBDIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_LOCALSTATEDIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_MAJOR_VERSION": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_MANDIR": { "ext.name": "Core", "ext.min": "5.3.7", "ext.max": null, "php.min": "5.3.7", "php.max": null }, "PHP_MAXPATHLEN": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_MINOR_VERSION": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_NORMAL_READ": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "PHP_OS": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_OUTPUT_HANDLER_CLEAN": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_CLEANABLE": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_CONT": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_OUTPUT_HANDLER_DISABLED": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_END": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_OUTPUT_HANDLER_FINAL": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_FLUSH": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_FLUSHABLE": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_REMOVABLE": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_START": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_OUTPUT_HANDLER_STARTED": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_STDFLAGS": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_OUTPUT_HANDLER_WRITE": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_PREFIX": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "PHP_QUERY_RFC1738": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_QUERY_RFC3986": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_RELEASE_VERSION": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_ROUND_HALF_DOWN": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_ROUND_HALF_EVEN": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_ROUND_HALF_ODD": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_ROUND_HALF_UP": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_SAPI": { "ext.name": "Core", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "PHP_SESSION_ACTIVE": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_SESSION_DISABLED": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_SESSION_NONE": { "ext.name": "session", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "PHP_SHLIB_SUFFIX": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_SYSCONFDIR": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_FRAGMENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_HOST": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_PASS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_PATH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_PORT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_QUERY": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_SCHEME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_URL_USER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_VERSION": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PHP_VERSION_ID": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PHP_WINDOWS_NT_DOMAIN_CONTROLLER": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_NT_SERVER": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_NT_WORKSTATION": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_BUILD": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_MAJOR": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_MINOR": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_PLATFORM": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_PRODUCTTYPE": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_SP_MAJOR": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_SP_MINOR": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_WINDOWS_VERSION_SUITEMASK": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PHP_ZTS": { "ext.name": "Core", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "PKCS7_BINARY": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_DETACHED": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOATTR": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOCERTS": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOCHAIN": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOINTERN": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOSIGS": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_NOVERIFY": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PKCS7_TEXT": { "ext.name": "openssl", "ext.min": "4.0.6", "ext.max": null, "php.min": "4.0.6", "php.max": null }, "PM_STR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "PNG_ALL_FILTERS": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_FILTER_AVG": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_FILTER_NONE": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_FILTER_PAETH": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_FILTER_SUB": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_FILTER_UP": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PNG_NO_FILTER": { "ext.name": "gd", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "POLL_ERR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POLL_HUP": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POLL_IN": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POLL_MSG": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POLL_OUT": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POLL_PRI": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "POSIX_F_OK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_R_OK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_S_IFBLK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_S_IFCHR": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_S_IFIFO": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_S_IFREG": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_S_IFSOCK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_W_OK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "POSIX_X_OK": { "ext.name": "posix", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "PREG_BACKTRACK_LIMIT_ERROR": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PREG_BAD_UTF8_ERROR": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PREG_BAD_UTF8_OFFSET_ERROR": { "ext.name": "pcre", "ext.min": "5.2.9", "ext.max": null, "php.min": "5.2.9", "php.max": null }, "PREG_GREP_INVERT": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PREG_INTERNAL_ERROR": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PREG_NO_ERROR": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PREG_OFFSET_CAPTURE": { "ext.name": "pcre", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "PREG_PATTERN_ORDER": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PREG_RECURSION_LIMIT_ERROR": { "ext.name": "pcre", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "PREG_SET_ORDER": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PREG_SPLIT_DELIM_CAPTURE": { "ext.name": "pcre", "ext.min": "4.0.5", "ext.max": null, "php.min": "4.0.5", "php.max": null }, "PREG_SPLIT_NO_EMPTY": { "ext.name": "pcre", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PREG_SPLIT_OFFSET_CAPTURE": { "ext.name": "pcre", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "PRIO_PGRP": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "PRIO_PROCESS": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "PRIO_USER": { "ext.name": "pcntl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "PSFS_ERR_FATAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PSFS_FEED_ME": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PSFS_FLAG_FLUSH_CLOSE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PSFS_FLAG_FLUSH_INC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PSFS_FLAG_NORMAL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PSFS_PASS_ON": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "PTHREADS_ALLOW_GLOBALS": { "ext.name": "pthreads", "ext.min": "2.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_ALLOW_HEADERS": { "ext.name": "pthreads", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_ALL": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_CLASSES": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_COMMENTS": { "ext.name": "pthreads", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_CONSTANTS": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_FUNCTIONS": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_INCLUDES": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_INI": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "PTHREADS_INHERIT_NONE": { "ext.name": "pthreads", "ext.min": "0.0.43", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "RADIXCHAR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "RAR_HOST_BEOS": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RAR_HOST_MACOS": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RAR_HOST_MSDOS": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RAR_HOST_OS2": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RAR_HOST_UNIX": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "RAR_HOST_WIN32": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "READLINE_LIB": { "ext.name": "readline", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SA_ALL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SA_MESSAGES": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SA_RECENT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SA_UIDNEXT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SA_UIDVALIDITY": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SA_UNSEEN": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SCANDIR_SORT_ASCENDING": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SCANDIR_SORT_DESCENDING": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SCANDIR_SORT_NONE": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SCM_CREDENTIALS": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SCM_RIGHTS": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SEARCHD_ERROR": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SEARCHD_OK": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SEARCHD_RETRY": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SEARCHD_WARNING": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SEEK_CUR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SEEK_END": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SEEK_SET": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SEGV_ACCERR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SEGV_MAPERR": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SE_FREE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SE_NOPREFETCH": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SE_UID": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SID": { "ext.name": "session", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SIGABRT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGALRM": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGBABY": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGBUS": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGCHLD": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGCLD": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGCONT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGFPE": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGHUP": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGILL": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGINT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGIO": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGIOT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGKILL": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGPIPE": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGPOLL": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGPROF": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGPWR": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGQUIT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGSEGV": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGSTKFLT": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGSTOP": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGSYS": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGTERM": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGTRAP": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGTSTP": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGTTIN": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGTTOU": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGURG": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGUSR1": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGUSR2": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGVTALRM": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGWINCH": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGXCPU": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIGXFSZ": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIG_BLOCK": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SIG_DFL": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIG_ERR": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIG_IGN": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SIG_SETMASK": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SIG_UNBLOCK": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_ASYNCIO": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_KERNEL": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_MESGQ": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_NOINFO": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_QUEUE": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_SIGIO": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_TIMER": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_TKILL": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SI_USER": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SNMP_BIT_STR": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_COUNTER": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_COUNTER64": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_INTEGER": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_IPADDRESS": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_NULL": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_OBJECT_ID": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_OCTET_STR": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_OID_OUTPUT_FULL": { "ext.name": "snmp", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "SNMP_OID_OUTPUT_MODULE": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SNMP_OID_OUTPUT_NONE": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SNMP_OID_OUTPUT_NUMERIC": { "ext.name": "snmp", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "SNMP_OID_OUTPUT_SUFFIX": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SNMP_OID_OUTPUT_UCD": { "ext.name": "snmp", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SNMP_OPAQUE": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_TIMETICKS": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_UINTEGER": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_UNSIGNED": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_VALUE_LIBRARY": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_VALUE_OBJECT": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SNMP_VALUE_PLAIN": { "ext.name": "snmp", "ext.min": "4.3.3", "ext.max": null, "php.min": "4.3.3", "php.max": null }, "SOAP_1_1": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_1_2": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ACTOR_NEXT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ACTOR_NONE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ACTOR_UNLIMATERECEIVER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_AUTHENTICATION_BASIC": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_AUTHENTICATION_DIGEST": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_COMPRESSION_ACCEPT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_COMPRESSION_DEFLATE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_COMPRESSION_GZIP": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_DOCUMENT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ENCODED": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ENC_ARRAY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_ENC_OBJECT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_FUNCTIONS_ALL": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_LITERAL": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_PERSISTENCE_REQUEST": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_PERSISTENCE_SESSION": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_RPC": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_SINGLE_ELEMENT_ARRAYS": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_SSL_METHOD_SSLv2": { "ext.name": "soap", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SOAP_SSL_METHOD_SSLv23": { "ext.name": "soap", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SOAP_SSL_METHOD_SSLv3": { "ext.name": "soap", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SOAP_SSL_METHOD_TLS": { "ext.name": "soap", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SOAP_USE_XSI_ARRAY_TYPE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOAP_WAIT_ONE_WAY_CALLS": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SOCKET_E2BIG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EACCES": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EADDRINUSE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EADDRNOTAVAIL": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EADV": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EAFNOSUPPORT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EAGAIN": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EALREADY": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EBADE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBADF": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EBADFD": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBADMSG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBADR": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBADRQC": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBADSLT": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EBUSY": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ECHRNG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ECOMM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ECONNABORTED": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ECONNREFUSED": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ECONNRESET": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EDESTADDRREQ": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EDISCON": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EDQUOT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EEXIST": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EFAULT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EHOSTDOWN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EHOSTUNREACH": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EIDRM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EINPROGRESS": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EINTR": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EINVAL": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EIO": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EISCONN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EISDIR": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EISNAM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EL2HLT": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EL2NSYNC": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EL3HLT": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EL3RST": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ELNRNG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ELOOP": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EMEDIUMTYPE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EMFILE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EMLINK": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EMSGSIZE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EMULTIHOP": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENAMETOOLONG": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENETDOWN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENETRESET": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENETUNREACH": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENFILE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOANO": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOBUFS": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENOCSI": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENODATA": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENODEV": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOENT": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOLCK": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOLINK": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOMEDIUM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOMEM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOMSG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENONET": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOPROTOOPT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENOSPC": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOSR": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOSTR": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOSYS": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOTBLK": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOTCONN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENOTDIR": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOTEMPTY": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENOTSOCK": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ENOTTY": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENOTUNIQ": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ENXIO": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EOPNOTSUPP": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EPERM": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EPFNOSUPPORT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EPIPE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EPROCLIM": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EPROTO": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EPROTONOSUPPORT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EPROTOTYPE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EREMCHG": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EREMOTE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EREMOTEIO": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ERESTART": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EROFS": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ESHUTDOWN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ESOCKTNOSUPPORT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ESPIPE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ESRMNT": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ESTALE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ESTRPIPE": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ETIME": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_ETIMEDOUT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_ETOOMANYREFS": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EUNATCH": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EUSERS": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EWOULDBLOCK": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_EXDEV": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_EXFULL": { "ext.name": "sockets", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SOCKET_HOST_NOT_FOUND": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_NOTINITIALISED": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_NO_ADDRESS": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_NO_DATA": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_NO_RECOVERY": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_SYSNOTREADY": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_TRY_AGAIN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCKET_VERNOTSUPPORTED": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCK_DGRAM": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCK_RAW": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCK_RDM": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCK_SEQPACKET": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOCK_STREAM": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOLR_EXTENSION_VERSION": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SOLR_MAJOR_VERSION": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SOLR_MINOR_VERSION": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SOLR_PATCH_VERSION": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "SOL_SOCKET": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOL_TCP": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOL_UDP": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SOMAXCONN": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SORTARRIVAL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTCC": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTDATE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTFROM": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTSIZE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTSUBJECT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORTTO": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_ASC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_DESC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_FLAG_CASE": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SORT_LOCALE_STRING": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_NATURAL": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "SORT_NUMERIC": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_REGULAR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SORT_STRING": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SO_BINDTODEVICE": { "ext.name": "sockets", "ext.min": "5.4.18", "ext.max": null, "php.min": "5.4.18", "php.max": null }, "SO_BROADCAST": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_DEBUG": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_DONTROUTE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_ERROR": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_FREE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SO_KEEPALIVE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_LINGER": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_NOSERVER": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SO_OOBINLINE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_PASSCRED": { "ext.name": "sockets", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "SO_RCVBUF": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_RCVLOWAT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_RCVTIMEO": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_REUSEADDR": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_REUSEPORT": { "ext.name": "sockets", "ext.min": "5.4.10", "ext.max": null, "php.min": "5.4.10", "php.max": null }, "SO_SNDBUF": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_SNDLOWAT": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_SNDTIMEO": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SO_TYPE": { "ext.name": "sockets", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "SPH_ATTR_BOOL": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_ATTR_FLOAT": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_ATTR_INTEGER": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_ATTR_MULTI": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_ATTR_ORDINAL": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_ATTR_TIMESTAMP": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_FILTER_FLOATRANGE": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_FILTER_RANGE": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_FILTER_VALUES": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_ATTR": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_ATTRPAIR": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_DAY": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_MONTH": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_WEEK": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_GROUPBY_YEAR": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_ALL": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_ANY": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_BOOLEAN": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_EXTENDED": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_EXTENDED2": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_FULLSCAN": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_MATCH_PHRASE": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_RANK_BM25": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_RANK_EXPR": { "ext.name": "sphinx", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_FIELDMASK": { "ext.name": "sphinx", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_MATCHANY": { "ext.name": "sphinx", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_NONE": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_RANK_PROXIMITY": { "ext.name": "sphinx", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_PROXIMITY_BM25": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_RANK_SPH04": { "ext.name": "sphinx", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_TOTAL": { "ext.name": "sphinx", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "SPH_RANK_WORDCOUNT": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_ATTR_ASC": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_ATTR_DESC": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_EXPR": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_EXTENDED": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_RELEVANCE": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SPH_SORT_TIME_SEGMENTS": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "SQLBIT": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLCHAR": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLFLT4": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLFLT8": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLFLTN": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLINT1": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLINT2": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLINT4": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLITE3_ASSOC": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_BLOB": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_BOTH": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_FLOAT": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_INTEGER": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_NULL": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_NUM": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_OPEN_CREATE": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_OPEN_READONLY": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_OPEN_READWRITE": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE3_TEXT": { "ext.name": "sqlite3", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "SQLITE_ABORT": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_ASSOC": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_AUTH": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_BOTH": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_BUSY": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_CANTOPEN": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_CONSTRAINT": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_CORRUPT": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_DONE": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_EMPTY": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_ERROR": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_FORMAT": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_FULL": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_INTERNAL": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_INTERRUPT": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_IOERR": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_LOCKED": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_MISMATCH": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_MISUSE": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_NOLFS": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_NOMEM": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_NOTADB": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_NOTFOUND": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_NUM": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_OK": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_PERM": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_PROTOCOL": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_READONLY": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_ROW": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_SCHEMA": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLITE_TOOBIG": { "ext.name": "sqlite", "ext.min": "2.0-dev", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "SQLTEXT": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQLVARCHAR": { "ext.name": "mssql", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_BEST_ROWID": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_BIGINT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_BINARY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_BIT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CHAR": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CONCURRENCY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CONCUR_LOCK": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CONCUR_READ_ONLY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CONCUR_ROWVER": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CONCUR_VALUES": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CURSOR_DYNAMIC": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CURSOR_FORWARD_ONLY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CURSOR_KEYSET_DRIVEN": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CURSOR_STATIC": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CURSOR_TYPE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CUR_USE_DRIVER": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CUR_USE_IF_NEEDED": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_CUR_USE_ODBC": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_DATE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_DECIMAL": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_DOUBLE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_ENSURE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_FETCH_FIRST": { "ext.name": "odbc", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SQL_FETCH_NEXT": { "ext.name": "odbc", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "SQL_FLOAT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_INDEX_ALL": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_INDEX_UNIQUE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_INTEGER": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_KEYSET_SIZE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_LONGVARBINARY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_LONGVARCHAR": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_NO_NULLS": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_NULLABLE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_NUMERIC": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_ODBC_CURSORS": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_QUICK": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_REAL": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_ROWVER": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_SCOPE_CURROW": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_SCOPE_SESSION": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_SCOPE_TRANSACTION": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_SMALLINT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TIME": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TIMESTAMP": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TINYINT": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TYPE_DATE": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TYPE_TIME": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_TYPE_TIMESTAMP": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_VARBINARY": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_VARCHAR": { "ext.name": "odbc", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SQL_WCHAR": { "ext.name": "odbc", "ext.min": "5.4.32RC1", "ext.max": null, "php.min": "5.4.32RC1", "php.max": null }, "SQL_WLONGVARCHAR": { "ext.name": "odbc", "ext.min": "5.4.32RC1", "ext.max": null, "php.min": "5.4.32RC1", "php.max": null }, "SQL_WVARCHAR": { "ext.name": "odbc", "ext.min": "5.4.32RC1", "ext.max": null, "php.min": "5.4.32RC1", "php.max": null }, "SSH2_DEFAULT_TERMINAL": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_DEFAULT_TERM_HEIGHT": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_DEFAULT_TERM_UNIT": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_DEFAULT_TERM_WIDTH": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_FINGERPRINT_HEX": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_FINGERPRINT_MD5": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_FINGERPRINT_RAW": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_FINGERPRINT_SHA1": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLERR": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLEXT": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLHUP": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLIN": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLNVAL": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLLOUT": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLL_CHANNEL_CLOSED": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLL_LISTENER_CLOSED": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_POLL_SESSION_CLOSED": { "ext.name": "ssh2", "ext.min": "0.8", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_STREAM_STDERR": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_STREAM_STDIO": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_TERM_UNIT_CHARS": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SSH2_TERM_UNIT_PIXELS": { "ext.name": "ssh2", "ext.min": "0.5", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STDERR": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "STDIN": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "STDOUT": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "STREAM_BUFFER_FULL": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_BUFFER_LINE": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_BUFFER_NONE": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_CAST_AS_STREAM": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_CAST_FOR_SELECT": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_CLIENT_ASYNC_CONNECT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CLIENT_CONNECT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CLIENT_PERSISTENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_ANY_CLIENT": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_ANY_SERVER": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv23_CLIENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv23_SERVER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv2_CLIENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv2_SERVER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv3_CLIENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_SSLv3_SERVER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_TLS_CLIENT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_TLS_SERVER": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_0_SERVER": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_1_SERVER": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_CRYPTO_METHOD_TLSv1_2_SERVER": { "ext.name": "standard", "ext.min": "5.6.0alpha3", "ext.max": null, "php.min": "5.6.0alpha3", "php.max": null }, "STREAM_ENFORCE_SAFE_MODE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": "5.3.29" }, "STREAM_FILTER_ALL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_FILTER_READ": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_FILTER_WRITE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_IGNORE_URL": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_IPPROTO_ICMP": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "STREAM_IPPROTO_IP": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_IPPROTO_RAW": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "STREAM_IPPROTO_TCP": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "STREAM_IPPROTO_UDP": { "ext.name": "standard", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "STREAM_IS_URL": { "ext.name": "standard", "ext.min": "5.2.4", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "STREAM_META_ACCESS": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_META_GROUP": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_META_GROUP_NAME": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_META_OWNER": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_META_OWNER_NAME": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_META_TOUCH": { "ext.name": "standard", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "STREAM_MKDIR_RECURSIVE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_MUST_SEEK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_AUTH_REQUIRED": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_AUTH_RESULT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_COMPLETED": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_CONNECT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_FAILURE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_FILE_SIZE_IS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_MIME_TYPE_IS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_PROGRESS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_REDIRECTED": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_RESOLVE": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_SEVERITY_ERR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_SEVERITY_INFO": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_NOTIFY_SEVERITY_WARN": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_OOB": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_OPTION_BLOCKING": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_OPTION_READ_BUFFER": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_OPTION_READ_TIMEOUT": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_OPTION_WRITE_BUFFER": { "ext.name": "standard", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "STREAM_PEEK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_PF_INET": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_PF_INET6": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_PF_UNIX": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_REPORT_ERRORS": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SERVER_BIND": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SERVER_LISTEN": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SHUT_RD": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SHUT_RDWR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SHUT_WR": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SOCK_DGRAM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SOCK_RAW": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SOCK_RDM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SOCK_SEQPACKET": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_SOCK_STREAM": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_URL_STAT_LINK": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_URL_STAT_QUIET": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STREAM_USE_PATH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STR_PAD_BOTH": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STR_PAD_LEFT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "STR_PAD_RIGHT": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ST_SET": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ST_SILENT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ST_UID": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SUNFUNCS_RET_DOUBLE": { "ext.name": "date", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "SUNFUNCS_RET_STRING": { "ext.name": "date", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "SUNFUNCS_RET_TIMESTAMP": { "ext.name": "date", "ext.min": "5.1.2", "ext.max": null, "php.min": "5.1.2", "php.max": null }, "SVN_ALL": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_CONFIG": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_CONFIG_DIR": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_DEFAULT_PASSWORD": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_DEFAULT_USERNAME": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_DONT_STORE_PASSWORDS": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_NON_INTERACTIVE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_NO_AUTH_CACHE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_SERVER_GROUP": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_AUTH_PARAM_SSL_SERVER_FAILURES": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_DISCOVER_CHANGED_PATHS": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_FS_CONFIG_FS_TYPE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_FS_TYPE_BDB": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_FS_TYPE_FSFS": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NODE_DIR": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NODE_FILE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NODE_NONE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NODE_UNKNOWN": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NON_RECURSIVE": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_NO_IGNORE": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_OMIT_MESSAGES": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_PROP_REVISION_AUTHOR": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_PROP_REVISION_DATE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_PROP_REVISION_LOG": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_PROP_REVISION_ORIG_DATE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_BASE": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_COMMITTED": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_HEAD": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_INITIAL": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_PREV": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_REVISION_UNSPECIFIED": { "ext.name": "svn", "ext.min": "1.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_SHOW_UPDATES": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_STOP_ON_COPY": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_SCHEDULE_ADD": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_SCHEDULE_DELETE": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_SCHEDULE_NORMAL": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_SCHEDULE_REPLACE": { "ext.name": "svn", "ext.min": "0.3", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_ADDED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_CONFLICTED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_DELETED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_EXTERNAL": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_IGNORED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_INCOMPLETE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_MERGED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_MISSING": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_MODIFIED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_NONE": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_NORMAL": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_OBSTRUCTED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_REPLACED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "SVN_WC_STATUS_UNVERSIONED": { "ext.name": "svn", "ext.min": "0.1", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TCP_NODELAY": { "ext.name": "sockets", "ext.min": "5.2.7", "ext.max": null, "php.min": "5.2.7", "php.max": null }, "THOUSEP": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "TIDY_NODETYPE_ASP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_CDATA": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_COMMENT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_DOCTYPE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_END": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_JSTE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_PHP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_PROCINS": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_ROOT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_SECTION": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_START": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_STARTEND": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_TEXT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_NODETYPE_XMLDECL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_A": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ABBR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ACRONYM": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ADDRESS": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ALIGN": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_APPLET": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_AREA": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_B": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BASE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BASEFONT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BDO": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BGSOUND": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BIG": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BLINK": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BLOCKQUOTE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BODY": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_BUTTON": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_CAPTION": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_CENTER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_CITE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_CODE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_COL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_COLGROUP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_COMMENT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DD": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DEL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DFN": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DIR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DIV": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_DT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_EM": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_EMBED": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_FIELDSET": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_FONT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_FORM": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_FRAME": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_FRAMESET": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H1": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H2": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H3": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H4": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H5": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_H6": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_HEAD": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_HR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_HTML": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_I": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_IFRAME": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ILAYER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_IMG": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_INPUT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_INS": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_ISINDEX": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_KBD": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_KEYGEN": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LABEL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LAYER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LEGEND": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LI": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LINK": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_LISTING": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_MAP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_MARQUEE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_MENU": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_META": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_MULTICOL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOBR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOEMBED": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOFRAMES": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOLAYER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOSAVE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_NOSCRIPT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_OBJECT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_OL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_OPTGROUP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_OPTION": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_P": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_PARAM": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_PLAINTEXT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_PRE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_Q": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RB": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RBC": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RTC": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_RUBY": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_S": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SAMP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SCRIPT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SELECT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SERVER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SERVLET": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SMALL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SPACER": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SPAN": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_STRIKE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_STRONG": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_STYLE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SUB": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_SUP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TABLE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TBODY": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TD": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TEXTAREA": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TFOOT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TH": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_THEAD": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TITLE": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_TT": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_U": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_UL": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_UNKNOWN": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_VAR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_WBR": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TIDY_TAG_XMP": { "ext.name": "tidy", "ext.min": "0.5.2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "TRAP_BRKPT": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "TRAP_TRACE": { "ext.name": "pcntl", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "TRUE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEAPPLICATION": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEAUDIO": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEIMAGE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEMESSAGE": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEMODEL": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEMULTIPART": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEOTHER": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPETEXT": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "TYPEVIDEO": { "ext.name": "imap", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "T_ABSTRACT": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_AND_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ARRAY": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ARRAY_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_AS": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_BAD_CHARACTER": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_BOOLEAN_AND": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_BOOLEAN_OR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_BOOL_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_BREAK": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CALLABLE": { "ext.name": "tokenizer", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "T_CASE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CATCH": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_CHARACTER": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CLASS": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CLASS_C": { "ext.name": "tokenizer", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "T_CLONE": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_CLOSE_TAG": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_COMMENT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CONCAT_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CONST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CONSTANT_ENCAPSED_STRING": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CONTINUE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_CURLY_OPEN": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DEC": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DECLARE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DEFAULT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DIR": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_DIV_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DNUMBER": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DO": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DOC_COMMENT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DOLLAR_OPEN_CURLY_BRACES": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DOUBLE_ARROW": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DOUBLE_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_DOUBLE_COLON": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ECHO": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ELLIPSIS": { "ext.name": "tokenizer", "ext.min": "5.6.0alpha1", "ext.max": null, "php.min": "5.6.0alpha1", "php.max": null }, "T_ELSE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ELSEIF": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_EMPTY": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENCAPSED_AND_WHITESPACE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDDECLARE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDFOR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDFOREACH": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDIF": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDSWITCH": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ENDWHILE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_END_HEREDOC": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_EVAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_EXIT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_EXTENDS": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_FILE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_FINAL": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_FINALLY": { "ext.name": "tokenizer", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "T_FMT": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "T_FMT_AMPM": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "T_FOR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_FOREACH": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_FUNCTION": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_FUNC_C": { "ext.name": "tokenizer", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "T_GLOBAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_GOTO": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_HALT_COMPILER": { "ext.name": "tokenizer", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "T_IF": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IMPLEMENTS": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_INC": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_INCLUDE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_INCLUDE_ONCE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_INLINE_HTML": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_INSTANCEOF": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_INSTEADOF": { "ext.name": "tokenizer", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "T_INTERFACE": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_INT_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ISSET": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_GREATER_OR_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_IDENTICAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_NOT_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_NOT_IDENTICAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_IS_SMALLER_OR_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LINE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LIST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LNUMBER": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LOGICAL_AND": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LOGICAL_OR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_LOGICAL_XOR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_METHOD_C": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_MINUS_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_ML_COMMENT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": "4.4.9" }, "T_MOD_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_MUL_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_NAMESPACE": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_NEW": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_NS_C": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_NS_SEPARATOR": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_NUM_STRING": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_OBJECT_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_OBJECT_OPERATOR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_OLD_FUNCTION": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": "4.4.9" }, "T_OPEN_TAG": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_OPEN_TAG_WITH_ECHO": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_OR_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_PAAMAYIM_NEKUDOTAYIM": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_PLUS_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_POW": { "ext.name": "tokenizer", "ext.min": "5.6.0RC1", "ext.max": null, "php.min": "5.6.0RC1", "php.max": null }, "T_POW_EQUAL": { "ext.name": "tokenizer", "ext.min": "5.6.0RC1", "ext.max": null, "php.min": "5.6.0RC1", "php.max": null }, "T_PRINT": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_PRIVATE": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_PROTECTED": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_PUBLIC": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_REQUIRE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_REQUIRE_ONCE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_RETURN": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_SL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_SL_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_SR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_SR_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_START_HEREDOC": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_STATIC": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_STRING": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_STRING_CAST": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_STRING_VARNAME": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_SWITCH": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_THROW": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_TRAIT": { "ext.name": "tokenizer", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "T_TRAIT_C": { "ext.name": "tokenizer", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "T_TRY": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_UNSET": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_UNSET_CAST": { "ext.name": "tokenizer", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "T_USE": { "ext.name": "tokenizer", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "T_VAR": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_VARIABLE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_WHILE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_WHITESPACE": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_XOR_EQUAL": { "ext.name": "tokenizer", "ext.min": "4.2.0", "ext.max": null, "php.min": "4.2.0", "php.max": null }, "T_YIELD": { "ext.name": "tokenizer", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "ULOC_ACTUAL_LOCALE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ULOC_VALID_LOCALE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "UNKNOWN_TYPE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "UPLOAD_ERR_CANT_WRITE": { "ext.name": "Core", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "UPLOAD_ERR_EXTENSION": { "ext.name": "Core", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "UPLOAD_ERR_FORM_SIZE": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "UPLOAD_ERR_INI_SIZE": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "UPLOAD_ERR_NO_FILE": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "UPLOAD_ERR_NO_TMP_DIR": { "ext.name": "Core", "ext.min": "4.3.10", "ext.max": null, "php.min": "4.3.10", "php.max": null }, "UPLOAD_ERR_OK": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "UPLOAD_ERR_PARTIAL": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "U_AMBIGUOUS_ALIAS_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BAD_VARIABLE_DEFINITION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_ASSIGN_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_ERROR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_HEX_DIGITS_EXPECTED": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_INIT_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_INTERNAL_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_MALFORMED_RULE_TAG": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_MISMATCHED_PAREN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_NEW_LINE_IN_QUOTED_STRING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_RULE_EMPTY_SET": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_RULE_SYNTAX": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_SEMICOLON_EXPECTED": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_UNCLOSED_SET": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_UNDEFINED_VARIABLE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_UNRECOGNIZED_OPTION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BRK_VARIABLE_REDFINITION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_BUFFER_OVERFLOW_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_CE_NOT_FOUND_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_COLLATOR_VERSION_MISMATCH": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_DIFFERENT_UCA_VERSION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ENUM_OUT_OF_SYNC_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ERROR_WARNING_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ERROR_WARNING_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_FILE_ACCESS_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_FMT_PARSE_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_FMT_PARSE_ERROR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_ACE_PREFIX_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_CHECK_BIDI_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "U_IDNA_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_ERROR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_LABEL_TOO_LONG_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_PROHIBITED_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_STD3_ASCII_RULES_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_UNASSIGNED_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_VERIFICATION_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_IDNA_ZERO_LENGTH_LABEL_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_ARGUMENT_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_CHARACTER": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_CHAR_FOUND": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_CHAR_IN_SEGMENT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_ESCAPE_SEQUENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ILLEGAL_PAD_POSITION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INDEX_OUTOFBOUNDS_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INTERNAL_PROGRAM_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INTERNAL_TRANSLITERATOR_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_CHAR_FOUND": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_FORMAT_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_FUNCTION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_ID": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_PROPERTY_PATTERN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_RBT_SYNTAX": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_STATE_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_TABLE_FILE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVALID_TABLE_FORMAT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_INVARIANT_CONVERSION_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_EXPONENTIAL_PATTERN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_PRAGMA": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_RULE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_SET": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_SYMBOL_REFERENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_UNICODE_ESCAPE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_VARIABLE_DEFINITION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MALFORMED_VARIABLE_REFERENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MEMORY_ALLOCATION_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MESSAGE_PARSE_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISMATCHED_SEGMENT_DELIMITERS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISPLACED_ANCHOR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISPLACED_COMPOUND_FILTER": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISPLACED_CURSOR_OFFSET": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISPLACED_QUANTIFIER": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISSING_OPERATOR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISSING_RESOURCE_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MISSING_SEGMENT_CLOSE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_ANTE_CONTEXTS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_COMPOUND_FILTERS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_CURSORS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_DECIMAL_SEPARATORS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_DECIMAL_SEPERATORS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_EXPONENTIAL_SYMBOLS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_PAD_SPECIFIERS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_PERCENT_SYMBOLS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_PERMILL_SYMBOLS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_MULTIPLE_POST_CONTEXTS": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_NO_SPACE_AVAILABLE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_NO_WRITE_PERMISSION": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_PARSE_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_PARSE_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_PARSE_ERROR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_PATTERN_SYNTAX_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_PRIMARY_TOO_LONG_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_BAD_ESCAPE_SEQUENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_BAD_INTERVAL": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_ERROR_START": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_INTERNAL_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_INVALID_BACK_REF": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_INVALID_FLAG": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_INVALID_STATE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_LOOK_BEHIND_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_MAX_LT_MIN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_MISMATCHED_PAREN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_NUMBER_TOO_BIG": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_PROPERTY_SYNTAX": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_RULE_SYNTAX": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_SET_CONTAINS_STRING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_REGEX_UNIMPLEMENTED": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_RESOURCE_TYPE_MISMATCH": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_RULE_MASK_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_SAFECLONE_ALLOCATED_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_SORT_KEY_TOO_SHORT_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STANDARD_ERROR_LIMIT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STATE_OLD_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STATE_TOO_OLD_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STRINGPREP_CHECK_BIDI_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STRINGPREP_PROHIBITED_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STRINGPREP_UNASSIGNED_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_STRING_NOT_TERMINATED_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_TOO_MANY_ALIASES_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_TRAILING_BACKSLASH": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_TRUNCATED_CHAR_FOUND": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNCLOSED_SEGMENT": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNDEFINED_SEGMENT_REFERENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNDEFINED_VARIABLE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNEXPECTED_TOKEN": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNMATCHED_BRACES": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNQUOTED_SPECIAL": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNSUPPORTED_ATTRIBUTE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNSUPPORTED_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNSUPPORTED_ESCAPE_SEQUENCE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNSUPPORTED_PROPERTY": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_UNTERMINATED_QUOTE": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_USELESS_COLLATOR_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_USING_DEFAULT_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_USING_FALLBACK_WARNING": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_VARIABLE_RANGE_EXHAUSTED": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_VARIABLE_RANGE_OVERLAP": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "U_ZERO_ERROR": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "VARNISH_COMPAT_2": { "ext.name": "varnish", "ext.min": "0.9.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_COMPAT_3": { "ext.name": "varnish", "ext.min": "0.9.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_COMPAT": { "ext.name": "varnish", "ext.min": "0.9.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_HOST": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_IDENT": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_PORT": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_SECRET": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_CONFIG_TIMEOUT": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_AUTH": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_CANT": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_CLOSE": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_COMMS": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_OK": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_PARAM": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_SYNTAX": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_TOOFEW": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_TOOMANY": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_UNIMPL": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "VARNISH_STATUS_UNKNOWN": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "WNOHANG": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "WSDL_CACHE_BOTH": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "WSDL_CACHE_DISK": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "WSDL_CACHE_MEMORY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "WSDL_CACHE_NONE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "WUNTRACED": { "ext.name": "pcntl", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "X509_PURPOSE_ANY": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_CRL_SIGN": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_NS_SSL_SERVER": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_SMIME_ENCRYPT": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_SMIME_SIGN": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_SSL_CLIENT": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "X509_PURPOSE_SSL_SERVER": { "ext.name": "openssl", "ext.min": "4.0.4", "ext.max": null, "php.min": "4.0.4", "php.max": null }, "XCACHE_MODULES": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XCACHE_VERSION": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD_ARRAY_ELEMENT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD_CHAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD_INTERFACE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD_STRING": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ADD_TRAIT": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_ADD_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_ADD": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_BW_AND": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_BW_OR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_BW_XOR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_CONCAT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_DIM": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_DIV": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_MOD": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_MUL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_POW": { "ext.name": "XCache", "ext.min": "3.2.0", "ext.max": null, "php.min": "5.6.0", "php.max": null }, "XC_ASSIGN_REF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_SL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_SR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ASSIGN_SUB": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BEGIN_SILENCE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BIND_TRAITS": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_BOOL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BOOL_NOT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BOOL_XOR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BRK": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BW_AND": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BW_NOT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BW_OR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_BW_XOR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CASE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CAST": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CATCH": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CLONE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CONCAT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_CONT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DECLARE_CLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DECLARE_CONST": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_DECLARE_FUNCTION": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DECLARE_INHERITED_CLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DECLARE_INHERITED_CLASS_DELAYED": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_DECLARE_LAMBDA_FUNCTION": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_DISCARD_EXCEPTION": { "ext.name": "XCache", "ext.min": "3.1.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "XC_DIV": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DO_FCALL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_DO_FCALL_BY_NAME": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ECHO": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_END_SILENCE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_EXIT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_EXT_FCALL_BEGIN": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_EXT_FCALL_END": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_EXT_NOP": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_EXT_STMT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FAST_CALL": { "ext.name": "XCache", "ext.min": "3.1.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "XC_FAST_RET": { "ext.name": "XCache", "ext.min": "3.1.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "XC_FETCH_CLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_CONSTANT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_FUNC_ARG": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_IS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_R": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_RW": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_TMP_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_UNSET": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_DIM_W": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_FUNC_ARG": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_IS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_FUNC_ARG": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_IS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_R": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_RW": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_UNSET": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_OBJ_W": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_R": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_RW": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_UNSET": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FETCH_W": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FE_FETCH": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FE_RESET": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_FREE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_GENERATOR_RETURN": { "ext.name": "XCache", "ext.min": "3.1.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "XC_GOTO": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_HANDLE_EXCEPTION": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INCLUDE_OR_EVAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INIT_ARRAY": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INIT_FCALL_BY_NAME": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INIT_METHOD_CALL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INIT_NS_FCALL_BY_NAME": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_INIT_STATIC_METHOD_CALL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INIT_STRING": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_INSTANCEOF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ISSET_ISEMPTY_DIM_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ISSET_ISEMPTY_PROP_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_ISSET_ISEMPTY_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_ARRAY": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_BOOL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_CONST": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_CONSTANT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_CONSTANT_ARRAY": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_CV": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_DOUBLE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_EQUAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_IDENTICAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_LONG": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_NOT_EQUAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_NOT_IDENTICAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_NULL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_OBJECT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_RESOURCE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_SMALLER": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_SMALLER_OR_EQUAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_STRING": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_TMP_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_UNICODE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_UNUSED": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_IS_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMP": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMPNZ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMPNZ_EX": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMPZ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMPZNZ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMPZ_EX": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_JMP_SET": { "ext.name": "XCache", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "XC_JMP_SET_VAR": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_MOD": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_MUL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_NEW": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_NOP": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_NULL?": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_ARG": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_ASSIGN": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_BIT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_BRK": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_CAST": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_CLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_CONT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_DECLARE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_FCALL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_FCLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_FE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_FETCH": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_IFACE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_INCLUDE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_INIT_FCALL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_ISSET": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_JMPADDR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_OPLINE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_SEND": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_SEND_NOREF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_STD": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_TMP": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_UCLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_UNUSED": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OPSPEC_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_OP_DATA": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_POST_DEC": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_POST_DEC_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_POST_INC": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_POST_INC_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_POW": { "ext.name": "XCache", "ext.min": "3.2.0", "ext.max": null, "php.min": "5.6.0", "php.max": null }, "XC_PRE_DEC": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_PRE_DEC_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_PRE_INC": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_PRE_INC_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_PRINT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_QM_ASSIGN": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_QM_ASSIGN_VAR": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_RAISE_ABSTRACT_ERROR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_RECV": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_RECV_INIT": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_RECV_VARIADIC": { "ext.name": "XCache", "ext.min": "3.2.0", "ext.max": null, "php.min": "5.6.0", "php.max": null }, "XC_RETURN": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_RETURN_BY_REF": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_SEND_REF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SEND_UNPACK": { "ext.name": "XCache", "ext.min": "3.2.0", "ext.max": null, "php.min": "5.6.0", "php.max": null }, "XC_SEND_VAL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SEND_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SEND_VAR_NO_REF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SEPARATE": { "ext.name": "XCache", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XC_SIZEOF_TEMP_VARIABLE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SL": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SUB": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_SWITCH_FREE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_THROW": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_TICKS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_TYPE_PHP": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_TYPE_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_UNDEF": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_UNSET_DIM": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_UNSET_OBJ": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_UNSET_VAR": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_USER_OPCODE": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_VERIFY_ABSTRACT_CLASS": { "ext.name": "XCache", "ext.min": "1.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XC_YIELD": { "ext.name": "XCache", "ext.min": "3.1.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "XDEBUG_CC_BRANCH_CHECK": { "ext.name": "xdebug", "ext.min": "2.3.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XDEBUG_CC_DEAD_CODE": { "ext.name": "xdebug", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XDEBUG_CC_UNUSED": { "ext.name": "xdebug", "ext.min": "2.0.0beta2", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XDEBUG_STACK_NO_DESC": { "ext.name": "xdebug", "ext.min": "2.3.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XDEBUG_TRACE_APPEND": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XDEBUG_TRACE_COMPUTERIZED": { "ext.name": "xdebug", "ext.min": "2.0.0beta1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XDEBUG_TRACE_HTML": { "ext.name": "xdebug", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "XDEBUG_TRACE_NAKED_FILENAME": { "ext.name": "xdebug", "ext.min": "2.3.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "XHPROF_FLAGS_CPU": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "XHPROF_FLAGS_MEMORY": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "XHPROF_FLAGS_NO_BUILTINS": { "ext.name": "xhprof", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "XML_ATTRIBUTE_CDATA": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_DECL_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_ENTITY": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_ENUMERATION": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_ID": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_IDREF": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_IDREFS": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_NMTOKEN": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_NMTOKENS": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ATTRIBUTE_NOTATION": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_CDATA_SECTION_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_COMMENT_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_DOCUMENT_FRAG_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_DOCUMENT_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_DOCUMENT_TYPE_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_DTD_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ELEMENT_DECL_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ELEMENT_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ENTITY_DECL_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ENTITY_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ENTITY_REF_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_ERROR_ASYNC_ENTITY": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_BAD_CHAR_REF": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_BINARY_ENTITY_REF": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_DUPLICATE_ATTRIBUTE": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_EXTERNAL_ENTITY_HANDLING": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_INCORRECT_ENCODING": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_INVALID_TOKEN": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_JUNK_AFTER_DOC_ELEMENT": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_MISPLACED_XML_PI": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_NONE": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_NO_ELEMENTS": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_NO_MEMORY": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_PARAM_ENTITY_REF": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_PARTIAL_CHAR": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_RECURSIVE_ENTITY_REF": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_SYNTAX": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_TAG_MISMATCH": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_UNCLOSED_CDATA_SECTION": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_UNCLOSED_TOKEN": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_UNDEFINED_ENTITY": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_ERROR_UNKNOWN_ENCODING": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_HTML_DOCUMENT_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_LOCAL_NAMESPACE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_NAMESPACE_DECL_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_NOTATION_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_OPTION_CASE_FOLDING": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_OPTION_SKIP_TAGSTART": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_OPTION_SKIP_WHITE": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_OPTION_TARGET_ENCODING": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_PI_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XML_SAX_IMPL": { "ext.name": "xml", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "XML_TEXT_NODE": { "ext.name": "dom", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_1999_NAMESPACE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_1999_TIMEINSTANT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ANYTYPE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ANYURI": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ANYXML": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_BASE64BINARY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_BOOLEAN": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_BYTE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_DATE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_DATETIME": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_DECIMAL": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_DOUBLE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_DURATION": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ENTITIES": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ENTITY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_FLOAT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_GDAY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_GMONTH": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_GMONTHDAY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_GYEAR": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_GYEARMONTH": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_HEXBINARY": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_ID": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_IDREF": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_IDREFS": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_INT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_INTEGER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_LANGUAGE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_LONG": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NAME": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NAMESPACE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NCNAME": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NEGATIVEINTEGER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NMTOKEN": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NMTOKENS": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NONNEGATIVEINTEGER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NONPOSITIVEINTEGER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NORMALIZEDSTRING": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_NOTATION": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_POSITIVEINTEGER": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_QNAME": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_SHORT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_STRING": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_TIME": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_TOKEN": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_UNSIGNEDBYTE": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_UNSIGNEDINT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_UNSIGNEDLONG": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSD_UNSIGNEDSHORT": { "ext.name": "soap", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSL_CLONE_ALWAYS": { "ext.name": "xsl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSL_CLONE_AUTO": { "ext.name": "xsl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSL_CLONE_NEVER": { "ext.name": "xsl", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "XSL_SECPREF_CREATE_DIRECTORY": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_DEFAULT": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_NONE": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_READ_FILE": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_READ_NETWORK": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_WRITE_FILE": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "XSL_SECPREF_WRITE_NETWORK": { "ext.name": "xsl", "ext.min": "5.3.9", "ext.max": null, "php.min": "5.3.9", "php.max": null }, "YAC_MAX_KEY_LEN": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAC_MAX_RAW_COMPRESSED_LEN": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAC_MAX_VALUE_RAW_LEN": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAC_SERIALIZER": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAC_VERSION": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_ANY_BREAK": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_ANY_ENCODING": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_ANY_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_BINARY_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_BOOL_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_CRLN_BREAK": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_CR_BREAK": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_DOUBLE_QUOTED_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_FLOAT_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_FOLDED_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_INT_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_LITERAL_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_LN_BREAK": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_MAP_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_MERGE_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_NULL_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_PHP_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_PLAIN_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_SEQ_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_SINGLE_QUOTED_SCALAR_STYLE": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_STR_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_TIMESTAMP_TAG": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_UTF16BE_ENCODING": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_UTF16LE_ENCODING": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YAML_UTF8_ENCODING": { "ext.name": "yaml", "ext.min": "0.6.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "YESEXPR": { "ext.name": "standard", "ext.min": "4.1.0", "ext.max": null, "php.min": "4.1.0", "php.max": null }, "ZEND_ACC_ABSTRACT": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_CLASS": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_FETCH": { "ext.name": "uopz", "ext.min": "2.0.2", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_FINAL": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_INTERFACE": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_PPP_MASK": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_PRIVATE": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_PROTECTED": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_PUBLIC": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_STATIC": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ACC_TRAIT": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ADD_INTERFACE": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_ADD_TRAIT": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_DEBUG_BUILD": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ZEND_EXIT": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_FETCH_CLASS": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_INSTANCEOF": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_MULTIBYTE": { "ext.name": "Core", "ext.min": "5.3.4", "ext.max": null, "php.min": "5.3.4", "php.max": "5.3.29" }, "ZEND_NEW": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_THREAD_SAFE": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "ZEND_THROW": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_CONTINUE": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_DISPATCH": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_DISPATCH_TO": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_ENTER": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_LEAVE": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZEND_USER_OPCODE_RETURN": { "ext.name": "uopz", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZLIB_ENCODING_DEFLATE": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZLIB_ENCODING_GZIP": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "ZLIB_ENCODING_RAW": { "ext.name": "zlib", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "__CLASS__": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "__COMPILER_HALT_OFFSET__": { "ext.name": "Core", "ext.min": "5.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__DIR__": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__FILE__": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "__FUNCTION__": { "ext.name": "Core", "ext.min": "4.3.0", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "__LINE__": { "ext.name": "Core", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "__METHOD__": { "ext.name": "Core", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__NAMESPACE__": { "ext.name": "Core", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__TRAIT__": { "ext.name": "Core", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "http\\Client\\Curl\\AUTH_ANY": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_BASIC": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_DIGEST": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_DIGEST_IE": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_GSSNEG": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_NTLM": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\AUTH_SPNEGO": { "ext.name": "http", "ext.min": "2.1.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\HTTP_VERSION_1_0": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\HTTP_VERSION_1_1": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\HTTP_VERSION_2_0": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\HTTP_VERSION_ANY": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\IPRESOLVE_ANY": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\IPRESOLVE_V4": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\IPRESOLVE_V6": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\POSTREDIR_301": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\POSTREDIR_302": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\POSTREDIR_303": { "ext.name": "http", "ext.min": "2.1.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\POSTREDIR_ALL": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_HTTP": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_HTTP_1_0": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_SOCKS4": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_SOCKS4A": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_SOCKS5": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\PROXY_SOCKS5_HOSTNAME": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_ANY": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_SSLv2": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_SSLv3": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_TLSv1": { "ext.name": "http", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_TLSv1_0": { "ext.name": "http", "ext.min": "2.1.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_TLSv1_1": { "ext.name": "http", "ext.min": "2.1.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "http\\Client\\Curl\\SSL_VERSION_TLSv1_2": { "ext.name": "http", "ext.min": "2.1.2", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "methods": { "AMQPChannel": { "__construct": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "commitTransaction": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getChannelId": { "ext.name": "amqp", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getConnection": { "ext.name": "amqp", "ext.min": "1.4.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrefetchCount": { "ext.name": "amqp", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrefetchSize": { "ext.name": "amqp", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isConnected": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "qos": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rollbackTransaction": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPrefetchCount": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPrefetchSize": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "startTransaction": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPChannelException": { "__construct": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__toString": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCode": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFile": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLine": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessage": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrevious": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTrace": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTraceAsString": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPConnection": { "__construct": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "connect": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "disconnect": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getHost": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLogin": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPassword": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPort": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getReadTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getVhost": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getWriteTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isConnected": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pconnect": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pdisconnect": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "reconnect": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setHost": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setLogin": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPassword": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPort": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setReadTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setVhost": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setWriteTimeout": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPConnectionException": { "__construct": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__toString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCode": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFile": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLine": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessage": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrevious": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTrace": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTraceAsString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPEnvelope": { "__construct": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAppId": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getBody": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getContentEncoding": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getContentType": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCorrelationId": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDeliveryMode": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDeliveryTag": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getExchangeName": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getExpiration": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getHeader": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getHeaders": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessageId": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPriority": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getReplyTo": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getRoutingKey": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTimestamp": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getType": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getUserId": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isRedelivery": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPException": { "__construct": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__toString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCode": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFile": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLine": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessage": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrevious": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTrace": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTraceAsString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPExchange": { "__construct": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bind": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "declare": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "declareExchange": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getArgument": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getArguments": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getChannel": { "ext.name": "amqp", "ext.min": "1.4.0beta2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getConnection": { "ext.name": "amqp", "ext.min": "1.4.0beta2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFlags": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getName": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getType": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "publish": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setArgument": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setArguments": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setFlags": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setName": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setType": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPExchangeException": { "__construct": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__toString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCode": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFile": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLine": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessage": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrevious": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTrace": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTraceAsString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPQueue": { "__construct": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ack": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bind": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "cancel": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "consume": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "declare": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "declareQueue": { "ext.name": "amqp", "ext.min": "1.0.10", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getArgument": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getArguments": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getChannel": { "ext.name": "amqp", "ext.min": "1.4.0beta1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getConnection": { "ext.name": "amqp", "ext.min": "1.4.0beta2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFlags": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getName": { "ext.name": "amqp", "ext.min": "0.3.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "nack": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "purge": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "reject": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setArgument": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setArguments": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setFlags": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setName": { "ext.name": "amqp", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unbind": { "ext.name": "amqp", "ext.min": "0.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "AMQPQueueException": { "__construct": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__toString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCode": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFile": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLine": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMessage": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrevious": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTrace": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTraceAsString": { "ext.name": "amqp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "DateInterval": { "__construct": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__set_state": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__wakeup": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "createFromDateString": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "format": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "DatePeriod": { "__construct": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__set_state": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__wakeup": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getDateInterval": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.6.5RC1", "php.max": null }, "getEndDate": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.6.5RC1", "php.max": null }, "getStartDate": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.6.5RC1", "php.max": null } }, "DateTime": { "__construct": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__set_state": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__wakeup": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": "5.4.37" }, "add": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "createFromFormat": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "createFromImmutable": { "ext.name": "date", "ext.min": "5.6.8RC1", "ext.max": null, "php.min": "5.6.8RC1", "php.max": null }, "diff": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": "5.4.37" }, "format": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": "5.4.37" }, "getLastErrors": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getOffset": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": "5.4.37" }, "getTimestamp": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": "5.4.37" }, "getTimezone": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": "5.4.37" }, "modify": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setDate": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setISODate": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setTime": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setTimestamp": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setTimezone": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sub": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "DateTimeImmutable": { "__construct": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "__set_state": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "add": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createFromFormat": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createFromMutable": { "ext.name": "date", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "getLastErrors": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "modify": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setDate": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setISODate": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setTime": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setTimestamp": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setTimezone": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "sub": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "DateTimeInterface": { "__wakeup": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "diff": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "format": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getOffset": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTimestamp": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTimezone": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "DateTimeZone": { "__construct": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__set_state": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__wakeup": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLocation": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getName": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getOffset": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTransitions": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "listAbbreviations": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "listIdentifiers": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Gender\\Gender": { "__construct": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__destruct": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": "0.7.0", "php.min": "5.3.0", "php.max": null }, "connect": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "country": { "ext.name": "gender", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "get": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isNick": { "ext.name": "gender", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "similarNames": { "ext.name": "gender", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "trace": { "ext.name": "gender", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "HaruAnnotation": { "setBorderStyle": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setHighlightMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setIcon": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setOpened": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruDestination": { "setFit": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitB": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitBH": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitBV": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitH": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitR": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFitV": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setXYZ": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruDoc": { "__construct": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "addPage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "addPageLabel": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "createOutline": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentEncoder": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentPage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getEncoder": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getFont": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getInfoAttr": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getPageLayout": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getPageMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getStreamSize": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "insertPage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadJPEG": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadPNG": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadRaw": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadTTC": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadTTF": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "loadType1": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "output": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "readFromStream": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "resetError": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "resetStream": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "save": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "saveToStream": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setCompressionMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setCurrentEncoder": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setEncryptionMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setInfoAttr": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setInfoDateAttr": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setOpenAction": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setPageLayout": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setPageMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setPagesConfiguration": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setPassword": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setPermission": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useCNSEncodings": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useCNSFonts": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useCNTEncodings": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useCNTFonts": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useJPEncodings": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useJPFonts": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useKREncodings": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "useKRFonts": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruEncoder": { "getByteType": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getType": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getUnicode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getWritingMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruException": { "__construct": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "__toString": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getFile": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLine": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getMessage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getPrevious": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTrace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTraceAsString": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruFont": { "MeasureText": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getAscent": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCapHeight": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getDescent": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getEncodingName": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getFontName": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getUnicodeWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getXHeight": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruImage": { "addSMask": { "ext.name": "haru", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getBitsPerComponent": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getColorSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getHeight": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getSize": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setColorMask": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setMaskImage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruOutline": { "setDestination": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setOpened": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "HaruPage": { "Concat": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "MeasureText": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "arc": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "beginText": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "circle": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "closePath": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "createDestination": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "createLinkAnnotation": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "createTextAnnotation": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "createURLAnnotation": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "curveTo": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "curveTo2": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "curveTo3": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "drawImage": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "ellipse": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "endPath": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "endText": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "eoFillStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "eofill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "fill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "fillStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCMYKFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCMYKStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCharSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentFont": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentFontSize": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentPos": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getCurrentTextPos": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getDash": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getFillingColorSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getFlatness": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getGMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getGrayFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getGrayStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getHeight": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getHorizontalScaling": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLineCap": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLineJoin": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLineWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getMiterLimit": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getRGBFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getRGBStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getStrokingColorSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextLeading": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextMatrix": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextRenderingMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextRise": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTextWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getTransMatrix": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getWordSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "lineTo": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "moveTextPos": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "moveTo": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "moveToNextLine": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "rectangle": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setCMYKFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setCMYKStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setCharSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setDash": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFlatness": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFontAndSize": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setGrayFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setGrayStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setHeight": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setHorizontalScaling": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setLineCap": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setLineJoin": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setLineWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setMiterLimit": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setRGBFill": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setRGBStroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setRotate": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setSize": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setSlideShow": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setTextLeading": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setTextMatrix": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setTextRenderingMode": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setTextRise": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setWidth": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setWordSpace": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setZoom": { "ext.name": "haru", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "showText": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "showTextNextLine": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "stroke": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "textOut": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "textRect": { "ext.name": "haru", "ext.min": "0.0.1", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "http\\Env\\Request": { "getCookie": { "ext.name": "http", "ext.min": "2.2.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Env\\Response": { "setCookie": { "ext.name": "http", "ext.min": "2.2.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Header\\Parser": { "getState": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "parse": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stream": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Message\\Parser": { "configure": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getAvailableConfiguration": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getAvailableOptions": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Collator": { "__construct": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "asort": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "compare": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getSortKey": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getStrength": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setStrength": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sort": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sortWithSortKeys": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "IntlBreakIterator": { "createCharacterInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createCodePointInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createLineInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createSentenceInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTitleInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createWordInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "current": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "first": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "following": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getPartsIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getText": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isBoundary": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "last": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "next": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "preceding": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "previous": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setText": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlCalendar": { "add": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "after": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "before": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "clear": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "equals": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fieldDifference": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fromDateTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "get": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getActualMaximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getActualMinimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getAvailableLocales": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getDayOfWeekType": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getFirstDayOfWeek": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getGreatestMinimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getKeywordValuesForLocale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getLeastMaximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getMaximum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getMinimalDaysInFirstWeek": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getMinimum": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getNow": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRepeatedWallTimeOption": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getSkippedWallTimeOption": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getType": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getWeekendTransition": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "inDaylightTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isEquivalentTo": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isLenient": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isSet": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isWeekend": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "roll": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "set": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setFirstDayOfWeek": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setLenient": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setMinimalDaysInFirstWeek": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setRepeatedWallTimeOption": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setSkippedWallTimeOption": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "toDateTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlCodePointBreakIterator": { "getLastCodePoint": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlDateFormatter": { "__construct": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "create": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "format": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "formatObject": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getCalendar": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getCalendarObject": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getDateType": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getPattern": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getTimeType": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getTimeZone": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getTimeZoneId": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "isLenient": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "localtime": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "parse": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setCalendar": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setLenient": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setPattern": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setTimeZone": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setTimeZoneId": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "IntlGregorianCalendar": { "__construct": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getGregorianChange": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "isLeapYear": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setGregorianChange": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlPartsIterator": { "getBreakIterator": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlRuleBasedBreakIterator": { "__construct": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getBinaryRules": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRuleStatus": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRuleStatusVec": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRules": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlTimeZone": { "countEquivalentIDs": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createDefault": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createEnumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTimeZoneIDEnumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fromDateTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getCanonicalID": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getDSTSavings": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getDisplayName": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getEquivalentID": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getGMT": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getID": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getOffset": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRawOffset": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRegion": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTZDataVersion": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getUnknown": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "hasSameRules": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "toDateTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "useDaylightTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "Locale": { "acceptFromHttp": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "canonicalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "composeLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "filterMatches": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAllVariants": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDefault": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayLanguage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayName": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayRegion": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayScript": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayVariant": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getKeywords": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrimaryLanguage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getRegion": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getScript": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lookup": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parseLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setDefault": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "MessageFormatter": { "__construct": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "format": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "formatMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parse": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parseMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Normalizer": { "isNormalized": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.3.0alpha1", "php.max": null }, "normalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.3.0alpha1", "php.max": null } }, "NumberFormatter": { "__construct": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "format": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "formatCurrency": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getSymbol": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTextAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parse": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parseCurrency": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPattern": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setSymbol": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setTextAttribute": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "ResourceBundle": { "__construct": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "count": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "create": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "get": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getLocales": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "Spoofchecker": { "__construct": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "areConfusable": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "isSuspicious": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setAllowedLocales": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "setChecks": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "Transliterator": { "create": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "createFromRules": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "createInverse": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "listIDs": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "transliterate": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "UConverter": { "__construct": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "convert": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fromUCallback": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getAliases": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getAvailable": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getDestinationEncoding": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getDestinationType": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorCode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getErrorMessage": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getSourceEncoding": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getSourceType": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getStandards": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getSubstChars": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "reasonText": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setDestinationEncoding": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setSourceEncoding": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "setSubstChars": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "toUCallback": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "transcode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "mimemessage": { "add_child": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "enum_uue": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "extract_body": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "extract_headers": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "extract_uue": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "get_child": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "get_child_count": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "get_parent": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "mimemessage": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null }, "remove": { "ext.name": "mailparse", "ext.min": "0.9", "ext.max": null, "php.min": "4.3.0", "php.max": null } }, "Mongo": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "forceError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getPoolSize": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getSlave": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getSlaveOkay": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "lastError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "poolDebug": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "prevError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "resetError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setPoolSize": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setSlaveOkay": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "switchSlave": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoBinData": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoClient": { "__construct": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "__get": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "close": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "connect": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "dropDB": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getConnections": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getHosts": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getReadPreference": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getWriteConcern": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "killCursor": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "listDBs": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "selectCollection": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "selectDB": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setReadPreference": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setWriteConcern": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoCode": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoCollection": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__get": { "ext.name": "mongo", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "aggregate": { "ext.name": "mongo", "ext.min": "1.3.0beta2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "aggregateCursor": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "batchInsert": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "count": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "createDBRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "createIndex": { "ext.name": "mongo", "ext.min": "1.5.0RC1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "deleteIndex": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "deleteIndexes": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "distinct": { "ext.name": "mongo", "ext.min": "1.2.12", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "drop": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "ensureIndex": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "find": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "findAndModify": { "ext.name": "mongo", "ext.min": "1.3.0beta2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "findOne": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDBRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getIndexInfo": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getReadPreference": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getSlaveOkay": { "ext.name": "mongo", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getWriteConcern": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "group": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "insert": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "parallelCollectionScan": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "remove": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "save": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setReadPreference": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setSlaveOkay": { "ext.name": "mongo", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setWriteConcern": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "toIndexString": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "update": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "validate": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoCommandCursor": { "__construct": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "createFromDocument": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoCursor": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "addOption": { "ext.name": "mongo", "ext.min": "1.0.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "awaitData": { "ext.name": "mongo", "ext.min": "1.2.12", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "count": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "explain": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "fields": { "ext.name": "mongo", "ext.min": "1.0.6", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getNext": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "hasNext": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "hint": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "immortal": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "limit": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "maxTimeMS": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "partial": { "ext.name": "mongo", "ext.min": "1.2.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "reset": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setFlag": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "skip": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "slaveOkay": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "snapshot": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "sort": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "tailable": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoCursorException": { "getHost": { "ext.name": "mongo", "ext.min": "1.2.5", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoCursorInterface": { "batchSize": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "dead": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getReadPreference": { "ext.name": "mongo", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "info": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setReadPreference": { "ext.name": "mongo", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "timeout": { "ext.name": "mongo", "ext.min": "1.6.0RC3", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "MongoDB": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__get": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "authenticate": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "command": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "createCollection": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "createDBRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "drop": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "dropCollection": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "execute": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "forceError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getCollectionInfo": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getCollectionNames": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDBRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getGridFS": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getProfilingLevel": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getReadPreference": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getSlaveOkay": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getWriteConcern": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "lastError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "listCollections": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "prevError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "repair": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "resetError": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "selectCollection": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setProfilingLevel": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setReadPreference": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setSlaveOkay": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setWriteConcern": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoDBRef": { "create": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "get": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoDate": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__set_state": { "ext.name": "mongo", "ext.min": "1.6.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "toDateTime": { "ext.name": "mongo", "ext.min": "1.6.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "MongoDeleteBatch": { "__construct": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoGridFS": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "delete": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "get": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "put": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "storeBytes": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "storeFile": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "storeUpload": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoGridFSCursor": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoGridFSFile": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getBytes": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getFilename": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getResource": { "ext.name": "mongo", "ext.min": "1.3.0", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getSize": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "write": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoId": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__set_state": { "ext.name": "mongo", "ext.min": "1.0.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getHostname": { "ext.name": "mongo", "ext.min": "1.0.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getInc": { "ext.name": "mongo", "ext.min": "1.0.11", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getPID": { "ext.name": "mongo", "ext.min": "1.0.11", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getTimestamp": { "ext.name": "mongo", "ext.min": "1.0.2", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "isValid": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoInsertBatch": { "__construct": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoInt32": { "__construct": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoInt64": { "__construct": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "1.0.9", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoLog": { "getCallback": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getLevel": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getModule": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setCallback": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setLevel": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setModule": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoPool": { "getSize": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "info": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setSize": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoRegex": { "__construct": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoResultException": { "getDocument": { "ext.name": "mongo", "ext.min": "1.3.0RC1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getHost": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoTimestamp": { "__construct": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__toString": { "ext.name": "mongo", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoUpdateBatch": { "__construct": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoWriteBatch": { "add": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "execute": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getBatchInfo": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getItemCount": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoWriteConcernException": { "getDocument": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MessagePack": { "__construct": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "pack": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setOption": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "unpack": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "unpacker": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MessagePackUnpacker": { "__construct": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__destruct": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "data": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "execute": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "feed": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "reset": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setOption": { "ext.name": "msgpack", "ext.min": "0.5.2", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "OAuth": { "__construct": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "__destruct": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "disableDebug": { "ext.name": "OAuth", "ext.min": "0.99.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "disableRedirects": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "disableSSLChecks": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "enableDebug": { "ext.name": "OAuth", "ext.min": "0.99.4", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "enableRedirects": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "enableSSLChecks": { "ext.name": "OAuth", "ext.min": "0.99.5", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "fetch": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "generateSignature": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getAccessToken": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getCAPath": { "ext.name": "OAuth", "ext.min": "0.99.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getLastResponse": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getLastResponseHeaders": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getLastResponseInfo": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getRequestHeader": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getRequestToken": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setAuthType": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setCAPath": { "ext.name": "OAuth", "ext.min": "0.99.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setNonce": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setRSACertificate": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setRequestEngine": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setSSLChecks": { "ext.name": "OAuth", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setTimeout": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setTimestamp": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setToken": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setVersion": { "ext.name": "OAuth", "ext.min": "0.99.1", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "OAuthProvider": { "__construct": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "addRequiredParameter": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "callTimestampNonceHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "callconsumerHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "calltokenHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "checkOAuthRequest": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "consumerHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "generateToken": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "is2LeggedEndpoint": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "isRequestTokenEndpoint": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "removeRequiredParameter": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "reportProblem": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setParam": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setRequestTokenPath": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "timestampNonceHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "tokenHandler": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "PDFlib": { "__construct": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "activate_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_nameddest": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_path_point": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_portfolio_file": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_portfolio_folder": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_table_cell": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "add_thumbnail": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "align": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "arc": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "arcn": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_dpart": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_glyph": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_glyph_ext": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_mc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_page_ext": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_pattern_ext": { "ext.name": "pdflib", "ext.min": "3.0.2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_template": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "begin_template_ext": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "circle": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "circular_arc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "clip": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_font": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_pdi_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "closepath": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "closepath_fill_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "closepath_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "concat": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "continue_text": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "convert_to_unicode": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_3dview": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_action": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_annotation": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_bookmark": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_field": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_fieldgroup": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_gstate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_pvf": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "create_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "curveto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "define_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete_pvf": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete_table": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "draw_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ellipse": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "elliptical_arc": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "encoding_set_char": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_dpart": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_glyph": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_item": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_layer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_mc": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_page_ext": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_template": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "end_template_ext": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "endpath": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill_graphicsblock": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill_imageblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill_pdfblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill_stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fill_textblock": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_table": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "fit_textline": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_apiname": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_buffer": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_errmsg": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_errnum": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_pdi_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_pdi_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_string": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_image": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_matchbox": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_path": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_pdi_page": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_pvf": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_table": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_textflow": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info_textline": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "initgraphics": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lineto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_3ddata": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_asset": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_font": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_graphics": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_iccprofile": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "load_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "makespotcolor": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mc_point": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "moveto": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open_image": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open_pdi_document": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open_pdi_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pcos_get_number": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pcos_get_stream": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pcos_get_string": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "poca_delete": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "poca_insert": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "poca_new": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "poca_remove": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "process_pdi": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rect": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "restore": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "resume_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rotate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "save": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "scale": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_graphics_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_gstate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_info": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_layer_dependency": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_parameter": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_text_option": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_text_pos": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set_value": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setcolor": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setdash": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setdashpattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setflat": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setfont": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setlinecap": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setlinejoin": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setlinewidth": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setmatrix": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setmiterlimit": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setpolydash": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "shading": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "shading_pattern": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "shfill": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "show": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "show_boxed": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "show_xy": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "skew": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "stringwidth": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "stroke": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "suspend_page": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "translate": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf16_to_utf32": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf16_to_utf8": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf32_to_utf16": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf32_to_utf8": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf8_to_utf16": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "utf8_to_utf32": { "ext.name": "pdflib", "ext.min": "3.0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "PDFlibException": { "get_apiname": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_errmsg": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get_errnum": { "ext.name": "pdflib", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Collectable": { "chunk": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "count": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getTerminationInfo": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isGarbage": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRunning": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isTerminated": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isWaiting": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "merge": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "notify": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pop": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "run": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGarbage": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shift": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "synchronized": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Cond": { "__construct": { "ext.name": "pthreads", "ext.min": "0.0.39", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "broadcast": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "create": { "ext.name": "pthreads", "ext.min": "0.0.39", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "destroy": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "signal": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Mutex": { "__construct": { "ext.name": "pthreads", "ext.min": "0.0.39", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "create": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "destroy": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "trylock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Pool": { "__construct": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__destruct": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "collect": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "resize": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shutdown": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "submit": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "submitTo": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Thread": { "__destruct": { "ext.name": "pthreads", "ext.min": "3.0.0", "ext.max": "3.0.6", "php.min": "5.3.0", "php.max": null }, "chunk": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "count": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "detach": { "ext.name": "pthreads", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCount": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCreatorId": { "ext.name": "pthreads", "ext.min": "0.0.36", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThread": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThreadId": { "ext.name": "pthreads", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMax": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPeak": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getTerminationInfo": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getThread": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getThreadId": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "globally": { "ext.name": "pthreads", "ext.min": "2.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isBusy": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isJoined": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRunning": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isStarted": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isTerminated": { "ext.name": "pthreads", "ext.min": "0.0.44", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isWaiting": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "join": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "kill": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": "3.0.6", "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "merge": { "ext.name": "pthreads", "ext.min": "0.0.44", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "notify": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pop": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "run": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shift": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "start": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "synchronized": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "0.0.33", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Threaded": { "chunk": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "count": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getTerminationInfo": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRunning": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isTerminated": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isWaiting": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "merge": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "notify": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pop": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "run": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shift": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "synchronized": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Worker": { "chunk": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "count": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "detach": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCreatorId": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThread": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThreadId": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getStacked": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getTerminationInfo": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getThreadId": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "globally": { "ext.name": "pthreads", "ext.min": "2.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isJoined": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRunning": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isShutdown": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isStarted": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isTerminated": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isWaiting": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isWorking": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "join": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "kill": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "merge": { "ext.name": "pthreads", "ext.min": "0.0.44", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "notify": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "pop": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "run": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shift": { "ext.name": "pthreads", "ext.min": "0.0.45", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "shutdown": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stack": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "start": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "synchronized": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "0.0.40", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unstack": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "RarArchive": { "__toString": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getComment": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getEntries": { "ext.name": "rar", "ext.min": "2.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getEntry": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isBroken": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isSolid": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setAllowBroken": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "RarEntry": { "__toString": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "extract": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAttr": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCrc": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFileTime": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getHostOs": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMethod": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getName": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPackedSize": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPosition": { "ext.name": "rar", "ext.min": "3.0.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getStream": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getUnpackedSize": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getVersion": { "ext.name": "rar", "ext.min": "0.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isDirectory": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isEncrypted": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "RarException": { "isUsingExceptions": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setUsingExceptions": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Redis": { "__construct": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__destruct": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_prefix": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_serialize": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_unserialize": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "append": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "auth": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bgSave": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bgrewriteaof": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bitcount": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bitop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bitpos": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "blPop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "brPop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "brpoplpush": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "clearLastError": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "client": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "config": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "connect": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "dbSize": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "debug": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "decr": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "decrBy": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "del": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "discard": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "dump": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "echo": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "eval": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "evalsha": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "evaluate": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "evaluateSha": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "exec": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "exists": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "expire": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "expireAt": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "flushAll": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "flushDB": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAuth": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getBit": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDBNum": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getHost": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getKeys": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getLastError": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMode": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMultiple": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getOption": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPersistentID": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPort": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getRange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getReadTimeout": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getSet": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getTimeout": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hDel": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hExists": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hGet": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hGetAll": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hIncrBy": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hIncrByFloat": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hKeys": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hLen": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hMget": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hMset": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hSet": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hSetNx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hVals": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "hscan": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "incr": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "incrBy": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "incrByFloat": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "isConnected": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "keys": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lGet": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lGetRange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lInsert": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lLen": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lPop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lPush": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lPushx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lRemove": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lSet": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lSize": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lastSave": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lindex": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "listTrim": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lrange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lrem": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ltrim": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mget": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "migrate": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "move": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mset": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "msetnx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "multi": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "object": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pconnect": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "persist": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pexpire": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pexpireAt": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pfadd": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pfcount": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pfmerge": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ping": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pipeline": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "popen": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "psetex": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "psubscribe": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pttl": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "publish": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "pubsub": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "punsubscribe": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rPop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rPush": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rPushx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "randomKey": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rawCommand": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rename": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "renameKey": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "renameNx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "resetStat": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "restore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "rpoplpush": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sAdd": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sContains": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sDiff": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sDiffStore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sGetMembers": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sInter": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sInterStore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sMembers": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sMove": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sPop": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sRandMember": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sRemove": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sSize": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sUnion": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sUnionStore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "save": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "scan": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "scard": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "script": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "select": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sendEcho": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setBit": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setOption": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setRange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setTimeout": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setex": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setnx": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sismember": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "slaveof": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "slowlog": { "ext.name": "redis", "ext.min": "2.2.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sort": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sortAsc": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sortAscAlpha": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sortDesc": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sortDescAlpha": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "srem": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "sscan": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "strlen": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "subscribe": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "substr": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "time": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ttl": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "type": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unsubscribe": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unwatch": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "wait": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "watch": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zAdd": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zCard": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zCount": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zDelete": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zDeleteRangeByRank": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zDeleteRangeByScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zIncrBy": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zInter": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRangeByLex": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRangeByScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRank": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRem": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRemRangeByRank": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRemRangeByScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRemove": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRemoveRangeByScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRevRangeByScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zRevRank": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zReverseRange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zScore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zSize": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zUnion": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zinterstore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zrevrange": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zscan": { "ext.name": "redis", "ext.min": "2.2.5", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "zunionstore": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "RedisArray": { "__call": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "__construct": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_distributor": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_function": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_hosts": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_instance": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_rehash": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "_target": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "bgsave": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "del": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "discard": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "exec": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "flushall": { "ext.name": "redis", "ext.min": "2.2.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "flushdb": { "ext.name": "redis", "ext.min": "2.2.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getMultiple": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getOption": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "keys": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mget": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "mset": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "multi": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "ping": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "save": { "ext.name": "redis", "ext.min": "2.2.7", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "select": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setOption": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unwatch": { "ext.name": "redis", "ext.min": "2.2.3", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Reflection": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getModifierNames": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionClass": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getConstant": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getConstants": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getConstructor": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDefaultProperties": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDocComment": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getEndLine": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getExtension": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getExtensionName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getFileName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getInterfaceNames": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getInterfaces": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getMethod": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getMethods": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getModifiers": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getNamespaceName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getParentClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getProperties": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getProperty": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getShortName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getStartLine": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getStaticProperties": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getStaticPropertyValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getTraitAliases": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getTraitNames": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getTraits": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "hasConstant": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "hasMethod": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "hasProperty": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "implementsInterface": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "inNamespace": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isAbstract": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isCloneable": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isFinal": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isInstance": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isInstantiable": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isInterface": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isInternal": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isIterateable": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isSubclassOf": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isTrait": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isUserDefined": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "newInstance": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "newInstanceArgs": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "newInstanceWithoutConstructor": { "ext.name": "Reflection", "ext.min": "5.4.0", "ext.max": null, "php.min": "5.4.0", "php.max": null }, "setStaticPropertyValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionExtension": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClassNames": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClasses": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getConstants": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDependencies": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getFunctions": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getINIEntries": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getVersion": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "info": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPersistent": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isTemporary": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionFunction": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClosure": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "invoke": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "invokeArgs": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDisabled": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionFunctionAbstract": { "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClosureScopeClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClosureThis": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDocComment": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getEndLine": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getExtension": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getExtensionName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getFileName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getNamespaceName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getNumberOfParameters": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getNumberOfRequiredParameters": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getParameters": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getShortName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getStartLine": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getStaticVariables": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "inNamespace": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isClosure": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDeprecated": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isGenerator": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isInternal": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isUserDefined": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isVariadic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "returnsReference": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionMethod": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClosure": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDeclaringClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getModifiers": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getPrototype": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "invoke": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "invokeArgs": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isAbstract": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isConstructor": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDestructor": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isFinal": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPrivate": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isProtected": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPublic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isStatic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setAccessible": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionObject": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionParameter": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "allowsNull": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "canBePassedByValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDeclaringClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDeclaringFunction": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDefaultValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDefaultValueConstantName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getPosition": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isArray": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isCallable": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDefaultValueAvailable": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDefaultValueConstant": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isOptional": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPassedByReference": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isVariadic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionProperty": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDeclaringClass": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getDocComment": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getModifiers": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isDefault": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPrivate": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isProtected": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isPublic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isStatic": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setAccessible": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setValue": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionZendExtension": { "__construct": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getAuthor": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getCopyright": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getName": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getURL": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getVersion": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "Reflector": { "__toString": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "Riak\\Bucket": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "counter": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "delete": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "get": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getConflictResolver": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getConnection": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKeyList": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKeyStream": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getName": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPropertyList": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "index": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "indexQuery": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "put": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setConflictResolver": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPropertyList": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\BucketPropertyList": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getAllowMult": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getBackend": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getBasicQuorum": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getBigVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCHashKeyFun": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getLastWriteWins": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getLinkFun": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNValue": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNotFoundOk": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getOldVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPostCommitHookList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPreCommitHookList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getRW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getReplicationMode": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getSearchEnabled": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getSmallVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getYoungVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setAllowMult": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBackend": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBasicQuorum": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBigVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setCHashKeyFun": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setLastWriteWins": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setLinkFun": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setNValue": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setNotFoundOk": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setOldVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPostCommitHookList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPreCommitHookList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setRW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setReplicationMode": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setSearchEnabled": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setSmallVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setYoungVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Connection": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getBucket": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getHost": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPort": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getServerInfo": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ping": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Crdt\\Counter": { "__construct": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "get": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "increment": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "incrementAndGet": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Crdt\\Input\\GetInput": { "getBasicQuorum": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNotFoundOk": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPR": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getR": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBasicQuorum": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setNotFoundOk": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPR": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setR": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Crdt\\Input\\UpdateInput": { "getDW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setW": { "ext.name": "riak", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Input\\DeleteInput": { "getDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getRW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setRW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Input\\GetInput": { "getBasicQuorum": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getIfModifiedVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNotFoundOk": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getReturnDeletedVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getReturnHead": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBasicQuorum": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setIfModifiedVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setNotFoundOk": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setR": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setReturnDeletedVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setReturnHead": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Input\\GetResolverInput": { "__construct": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getConflictResolver": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Input\\IndexInput": { "getContinuation": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMaxResults": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setContinuation": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setMaxResults": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Input\\PutInput": { "getDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getIfNoneMatch": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getIfNotModified": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getReturnBody": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getReturnHead": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setIfNoneMatch": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setIfNotModified": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setReturnBody": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setReturnHead": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setW": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Link": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getBucketName": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKey": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getTag": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Functions\\BaseFunction": { "toArray": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Functions\\ErlangFunction": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Functions\\JavascriptFunction": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "anon": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "named": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Input\\BucketInput": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setIndexFilter": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Input\\Input": { "getValue": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Input\\KeyDataListInput": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "add": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Input\\KeyListInput": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addArray": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addSingle": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\MapReduce": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addPhase": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "run": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setInput": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "toArray": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "toJson": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Output\\Output": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPhaseNumber": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getValue": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Output\\StreamOutput": { "receive": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Phase\\MapPhase": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Phase\\Phase": { "toArray": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\MapReduce\\Phase\\ReducePhase": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Object": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addIndex": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addLink": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addMetadata": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCharset": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getContent": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getContentEncoding": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getContentType": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getIndexMap": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKey": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getLastModified": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getLastModifiedUSecs": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getLinkList": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMetadataMap": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVClock": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVTag": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isDeleted": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setCharset": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setContent": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setContentEncoding": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setContentType": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setKey": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setVClock": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\ObjectList": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "first": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isEmpty": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "last": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\ConflictResolver": { "resolve": { "ext.name": "riak", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\GetOutput": { "isUnchanged": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\IndexOutput": { "__construct": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getContinuation": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getResultList": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\IndexResult": { "__construct": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKey": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\IndexResultList": { "__construct": { "ext.name": "riak", "ext.min": "0.7.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\KeyStreamOutput": { "process": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Output\\Output": { "getFirstObject": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getKey": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getObject": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getObjectList": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVClock": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "hasObject": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "hasSiblings": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\PoolInfo": { "getNumActiveConnection": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNumActivePersistentConnection": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNumReconnect": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Property\\CommitHook": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getErlFunction": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getErlModule": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getJsName": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isErlang": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isJavascript": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Property\\CommitHookList": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Property\\ModuleFunction": { "__construct": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getFunction": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getModule": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setFunction": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setModule": { "ext.name": "riak", "ext.min": "0.6.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Query\\IndexQuery": { "__construct": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExactValue": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getName": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getRangeValue": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRangeQuery": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setExactValue": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setName": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setRangeValue": { "ext.name": "riak", "ext.min": "0.4.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Search\\Input\\ParameterBag": { "getDefaultField": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getDefaultOperation": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getFieldLimits": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getFilter": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPresort": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getRowLimit": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getSort": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getStartOffset": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDefaultField": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setDefaultOperation": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setFieldLimits": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setFilter": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPresort": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setRowLimit": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setSort": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setStartOffset": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Search\\Output\\DocumentOutput": { "getFields": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Search\\Output\\Output": { "getDocuments": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMaxScore": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNumFound": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "hasMaxScore": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "hasNumFound": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\Search\\Search": { "__construct": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "search": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\ServerInfo": { "__construct": { "ext.name": "riak", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNode": { "ext.name": "riak", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getServerVersion": { "ext.name": "riak", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "SolrClient": { "__clone": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__sleep": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__wakeup": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addDocument": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addDocuments": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "commit": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteById": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteByIds": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteByQueries": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteByQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getById": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getByIds": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getDebug": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getOptions": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "optimize": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "ping": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "query": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "request": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "rollback": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setResponseWriter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setServlet": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "system": { "ext.name": "solr", "ext.min": "1.1.0b", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "threads": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrCollapseFunction": { "__construct": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__sleep": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__toString": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "__wakeup": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getHint": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMax": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getMin": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNullPolicy": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getSize": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setHint": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setMax": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setMin": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setNullPolicy": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setSize": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "SolrDisMaxQuery": { "__construct": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addBigramPhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addBoostQuery": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addPhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addQueryField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addTrigramPhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addUserField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeBigramPhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeBoostQuery": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removePhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeQueryField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeTrigramPhraseField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeUserField": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBigramPhraseFields": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBigramPhraseSlop": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBoostFunction": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setBoostQuery": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setMinimumMatch": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPhraseFields": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPhraseSlop": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setQueryAlt": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setQueryPhraseSlop": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setTieBreaker": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setTrigramPhraseFields": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setTrigramPhraseSlop": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setUserFields": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "useDisMaxQueryParser": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "useEDisMaxQueryParser": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "SolrDocument": { "__clone": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__get": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__isset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__set": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__unset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "clear": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "fieldExists": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFieldCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFieldNames": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getInputDocument": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "merge": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "reset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "sort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "toArray": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrDocumentField": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrException": { "getInternalInfo": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrGenericResponse": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrInputDocument": { "__clone": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__sleep": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__wakeup": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "clear": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "deleteField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "fieldExists": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFieldBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFieldCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFieldNames": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "merge": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "reset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFieldBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "sort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "toArray": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrModifiableParams": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrObject": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getPropertyNames": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrParams": { "__clone": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__toString": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "add": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addParam": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "get": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getParam": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getParams": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getPreparedParams": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "set": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setParam": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "toString": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrPingResponse": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrQuery": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addExpandFilterQuery": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addExpandSortField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addFacetDateField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addFacetDateOther": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addFacetField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addFacetQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addFilterQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addGroupField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addGroupFunction": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addGroupQuery": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addGroupSortField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "addHighlightField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addMltField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addMltQueryField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addSortField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addStatsFacet": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "addStatsField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "collapse": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExpand": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExpandFilterQueries": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExpandQuery": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExpandRows": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getExpandSortFields": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getFacet": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateEnd": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateGap": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateHardEnd": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateOther": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetDateStart": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetLimit": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetMethod": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetMinCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetMissing": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetOffset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetPrefix": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetQueries": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFacetSort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getFilterQueries": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getGroup": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupCachePercent": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupFacet": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupFields": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupFormat": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupFunctions": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupLimit": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupMain": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupNGroups": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupOffset": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupQueries": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupSortFields": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getGroupTruncate": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getHighlight": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightAlternateField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightFormatter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightFragmenter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightFragsize": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightHighlightMultiTerm": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightMaxAlternateFieldLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightMaxAnalyzedChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightMergeContiguous": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightRegexMaxAnalyzedChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightRegexPattern": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightRegexSlop": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightRequireFieldMatch": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightSimplePost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightSimplePre": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightSnippets": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHighlightUsePhraseHighlighter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMlt": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMaxNumQueryTerms": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMaxNumTokens": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMaxWordLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMinDocFrequency": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMinTermFrequency": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltMinWordLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getMltQueryFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRows": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getSortFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getStart": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getStats": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getStatsFacets": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getStatsFields": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTerms": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsIncludeLowerBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsIncludeUpperBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsLimit": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsLowerBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsMaxCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsMinCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsPrefix": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsReturnRaw": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsSort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTermsUpperBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getTimeAllowed": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeExpandFilterQuery": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeExpandSortField": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "removeFacetDateField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeFacetDateOther": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeFacetField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeFacetQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeFilterQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeHighlightField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeMltField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeMltQueryField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeSortField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeStatsFacet": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "removeStatsField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setEchoHandler": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setEchoParams": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setExpand": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setExpandQuery": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setExpandRows": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setExplainOther": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacet": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetDateEnd": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetDateGap": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetDateHardEnd": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetDateStart": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetEnumCacheMinDefaultFrequency": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetLimit": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetMethod": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetMinCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetMissing": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetOffset": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetPrefix": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setFacetSort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setGroup": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupCachePercent": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupFacet": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupFormat": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupLimit": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupMain": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupNGroups": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupOffset": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setGroupTruncate": { "ext.name": "solr", "ext.min": "2.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setHighlight": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightAlternateField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightFormatter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightFragmenter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightFragsize": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightHighlightMultiTerm": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightMaxAlternateFieldLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightMaxAnalyzedChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightMergeContiguous": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightRegexMaxAnalyzedChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightRegexPattern": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightRegexSlop": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightRequireFieldMatch": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightSimplePost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightSimplePre": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightSnippets": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setHighlightUsePhraseHighlighter": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMlt": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltBoost": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMaxNumQueryTerms": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMaxNumTokens": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMaxWordLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMinDocFrequency": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMinTermFrequency": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setMltMinWordLength": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setOmitHeader": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setQuery": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setRows": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setShowDebugInfo": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setStart": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setStats": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTerms": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsField": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsIncludeLowerBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsIncludeUpperBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsLimit": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsLowerBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsMaxCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsMinCount": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsPrefix": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsReturnRaw": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsSort": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTermsUpperBound": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setTimeAllowed": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrQueryResponse": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrResponse": { "getArrayResponse": { "ext.name": "solr", "ext.min": "2.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getDigestedResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHttpStatus": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getHttpStatusMessage": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRawRequest": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRawRequestHeaders": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRawResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRawResponseHeaders": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getRequestUrl": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "setParseMode": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "success": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrUpdateResponse": { "__construct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "__destruct": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SolrUtils": { "digestJsonResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "digestXmlResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "escapeQueryChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getSolrVersion": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "queryPhrase": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } }, "SphinxClient": { "__construct": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "__sleep": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "__wakeup": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "addQuery": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "buildExcerpts": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "buildKeywords": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "close": { "ext.name": "sphinx", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "escapeString": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLastError": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "getLastWarning": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "open": { "ext.name": "sphinx", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "query": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "resetFilters": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "resetGroupBy": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "runQueries": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setArrayResult": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setConnectTimeout": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFieldWeights": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFilter": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFilterFloatRange": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setFilterRange": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setGeoAnchor": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setGroupBy": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setGroupDistinct": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setIDRange": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setIndexWeights": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setLimits": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setMatchMode": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setMaxQueryTime": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setOverride": { "ext.name": "sphinx", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "setRankingMode": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setRetries": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setSelect": { "ext.name": "sphinx", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "setServer": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "setSortMode": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null }, "status": { "ext.name": "sphinx", "ext.min": "1.0.3", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "updateAttributes": { "ext.name": "sphinx", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.1.3", "php.max": null } }, "Directory": { "close": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "read": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null }, "rewind": { "ext.name": "standard", "ext.min": "4.0.0", "ext.max": null, "php.min": "4.0.0", "php.max": null } }, "php_user_filter": { "filter": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "onClose": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "onCreate": { "ext.name": "standard", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "Stomp": { "__construct": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "__destruct": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "abort": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "ack": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "begin": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "commit": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "error": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "getReadTimeout": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "getSessionId": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "hasFrame": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "nack": { "ext.name": "stomp", "ext.min": "1.0.6", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "readFrame": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "send": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "setReadTimeout": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "subscribe": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null }, "unsubscribe": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null } }, "StompException": { "getDetails": { "ext.name": "stomp", "ext.min": "1.0.1", "ext.max": null, "php.min": "5.2.2", "php.max": null } }, "StompFrame": { "__construct": { "ext.name": "stomp", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.2.2", "php.max": null } }, "VarnishAdmin": { "__construct": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "auth": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "ban": { "ext.name": "varnish", "ext.min": "0.6", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "banUrl": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "clearPanic": { "ext.name": "varnish", "ext.min": "0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "connect": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "disconnect": { "ext.name": "varnish", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getPanic": { "ext.name": "varnish", "ext.min": "0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getParams": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getVclList": { "ext.name": "varnish", "ext.min": "0.9.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "isRunning": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setCompat": { "ext.name": "varnish", "ext.min": "0.9.2", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setHost": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setIdent": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setParam": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setPort": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setSecret": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "setTimeout": { "ext.name": "varnish", "ext.min": "0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "start": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stop": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "vclUse": { "ext.name": "varnish", "ext.min": "0.9.3", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "VarnishLog": { "__construct": { "ext.name": "varnish", "ext.min": "0.4", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "VarnishStat": { "__construct": { "ext.name": "varnish", "ext.min": "0.3", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "XMLDiff\\Base": { "__construct": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "diff": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "merge": { "ext.name": "xmldiff", "ext.min": "0.8.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Yac": { "add": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "delete": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "dump": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "flush": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "get": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "info": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "set": { "ext.name": "yac", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "ZipArchive": { "addEmptyDir": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "addFile": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "addFromString": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "addGlob": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "addPattern": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "close": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "deleteIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "deleteName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "extractTo": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getArchiveComment": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCommentIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getCommentName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getExternalAttributesIndex": { "ext.name": "zip", "ext.min": "1.12.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getExternalAttributesName": { "ext.name": "zip", "ext.min": "1.12.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFromIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getFromName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getNameIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getStatusString": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getStream": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "locateName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "open": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "renameIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "renameName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setArchiveComment": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setCommentIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setCommentName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setCompressionIndex": { "ext.name": "zip", "ext.min": "1.13.1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setCompressionName": { "ext.name": "zip", "ext.min": "1.13.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setExternalAttributesIndex": { "ext.name": "zip", "ext.min": "1.12.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setExternalAttributesName": { "ext.name": "zip", "ext.min": "1.12.4", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setPassword": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "statIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "statName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unchangeAll": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unchangeArchive": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unchangeIndex": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "unchangeName": { "ext.name": "zip", "ext.min": "1.6.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } } }, "static_methods": { "DateInterval": { "__set_state": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "createFromDateString": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "DatePeriod": { "__set_state": { "ext.name": "date", "ext.min": "5.3.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "DateTime": { "__set_state": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "createFromFormat": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "createFromImmutable": { "ext.name": "date", "ext.min": "5.6.8RC1", "ext.max": null, "php.min": "5.6.8RC1", "php.max": null }, "getLastErrors": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "DateTimeImmutable": { "__set_state": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createFromFormat": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createFromMutable": { "ext.name": "date", "ext.min": "5.6.0beta1", "ext.max": null, "php.min": "5.6.0beta1", "php.max": null }, "getLastErrors": { "ext.name": "date", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "DateTimeZone": { "__set_state": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "listAbbreviations": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "listIdentifiers": { "ext.name": "date", "ext.min": "5.2.0", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "http\\Env\\Request": { "getCookie": { "ext.name": "http", "ext.min": "2.2.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Env\\Response": { "setCookie": { "ext.name": "http", "ext.min": "2.2.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Header\\Parser": { "getState": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "parse": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "stream": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "http\\Message\\Parser": { "configure": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getAvailableConfiguration": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getAvailableOptions": { "ext.name": "http", "ext.min": "2.3.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Collator": { "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "IntlBreakIterator": { "createCharacterInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createCodePointInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createLineInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createSentenceInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTitleInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createWordInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlCalendar": { "createInstance": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fromDateTime": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getAvailableLocales": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getKeywordValuesForLocale": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getNow": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "IntlDateFormatter": { "create": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "formatObject": { "ext.name": "intl", "ext.min": "1.0.0RC1", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "IntlTimeZone": { "countEquivalentIDs": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createDefault": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createEnumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "createTimeZoneIDEnumeration": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "fromDateTimeZone": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getCanonicalID": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getEquivalentID": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getGMT": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getRegion": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getTZDataVersion": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getUnknown": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "Locale": { "acceptFromHttp": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "canonicalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "composeLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "filterMatches": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getAllVariants": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDefault": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayLanguage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayName": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayRegion": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayScript": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getDisplayVariant": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getKeywords": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getPrimaryLanguage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getRegion": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "getScript": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "lookup": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parseLocale": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setDefault": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "MessageFormatter": { "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "formatMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "parseMessage": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Normalizer": { "isNormalized": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.3.0alpha1", "php.max": null }, "normalize": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.3.0alpha1", "php.max": null } }, "NumberFormatter": { "create": { "ext.name": "intl", "ext.min": "1.0.0beta", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "ResourceBundle": { "create": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "getLocales": { "ext.name": "intl", "ext.min": "1.1.0", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "Transliterator": { "create": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "createFromRules": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null }, "listIDs": { "ext.name": "intl", "ext.min": "2.0.0b1", "ext.max": null, "php.min": "5.2.4", "php.max": null } }, "UConverter": { "getAliases": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getAvailable": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "getStandards": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "reasonText": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null }, "transcode": { "ext.name": "intl", "ext.min": "5.5.0", "ext.max": null, "php.min": "5.5.0", "php.max": null } }, "Mongo": { "getPoolSize": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "poolDebug": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "setPoolSize": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoClient": { "getConnections": { "ext.name": "mongo", "ext.min": "1.3.0RC3", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "killCursor": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoCollection": { "toIndexString": { "ext.name": "mongo", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoCommandCursor": { "createFromDocument": { "ext.name": "mongo", "ext.min": "1.5.0RC2", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoDBRef": { "create": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "get": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "isRef": { "ext.name": "mongo", "ext.min": "0.9.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "MongoDate": { "__set_state": { "ext.name": "mongo", "ext.min": "1.6.0RC1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "MongoId": { "__set_state": { "ext.name": "mongo", "ext.min": "1.0.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getHostname": { "ext.name": "mongo", "ext.min": "1.0.8", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "isValid": { "ext.name": "mongo", "ext.min": "1.5.0alpha1", "ext.max": null, "php.min": "5.2.6", "php.max": null } }, "MongoLog": { "getCallback": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "getLevel": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "getModule": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setCallback": { "ext.name": "mongo", "ext.min": "1.3.0beta1", "ext.max": null, "php.min": "5.2.6", "php.max": null }, "setLevel": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setModule": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "MongoPool": { "getSize": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "info": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "setSize": { "ext.name": "mongo", "ext.min": "1.2.3", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "OAuthProvider": { "generateToken": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null }, "reportProblem": { "ext.name": "OAuth", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.1.0", "php.max": null } }, "Collectable": { "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Cond": { "broadcast": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "create": { "ext.name": "pthreads", "ext.min": "0.0.39", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "destroy": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "signal": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "wait": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Mutex": { "create": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "destroy": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "lock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "trylock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "unlock": { "ext.name": "pthreads", "ext.min": "0.0.37", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Thread": { "__destruct": { "ext.name": "pthreads", "ext.min": "3.0.0", "ext.max": "3.0.6", "php.min": "5.3.0", "php.max": null }, "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThread": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThreadId": { "ext.name": "pthreads", "ext.min": "0.1.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "globally": { "ext.name": "pthreads", "ext.min": "2.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Threaded": { "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Worker": { "extend": { "ext.name": "pthreads", "ext.min": "2.0.8", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "from": { "ext.name": "pthreads", "ext.min": "2.0.9", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThread": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getCurrentThreadId": { "ext.name": "pthreads", "ext.min": "1.0.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "globally": { "ext.name": "pthreads", "ext.min": "2.0.1", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "RarArchive": { "open": { "ext.name": "rar", "ext.min": "2.0.0b2", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "RarException": { "isUsingExceptions": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null }, "setUsingExceptions": { "ext.name": "rar", "ext.min": "2.0.0RC1", "ext.max": null, "php.min": "5.2.0", "php.max": null } }, "Reflection": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null }, "getModifierNames": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionClass": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionExtension": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionFunction": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionMethod": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionParameter": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionProperty": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "ReflectionZendExtension": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "Reflector": { "export": { "ext.name": "Reflection", "ext.min": "5.0.0", "ext.max": null, "php.min": "5.0.0", "php.max": null } }, "Riak\\MapReduce\\Functions\\JavascriptFunction": { "anon": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "named": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "Riak\\PoolInfo": { "getNumActiveConnection": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNumActivePersistentConnection": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null }, "getNumReconnect": { "ext.name": "riak", "ext.min": "0.5.0", "ext.max": null, "php.min": "5.3.0", "php.max": null } }, "SolrUtils": { "digestJsonResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "digestXmlResponse": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "escapeQueryChars": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "getSolrVersion": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null }, "queryPhrase": { "ext.name": "solr", "ext.min": "0.9.11", "ext.max": null, "php.min": "5.2.3", "php.max": null } } }, "functions_windows": { "apache_child_terminate": false, "chroot": false, "getrusage": false, "imagecreatefromxpm": false, "lchgrp": false, "lchown": false, "nl_langinfo": false, "strptime": false, "sys_getloadavg": false, "checkdnsrr": "5.3.0", "dns_get_record": "5.3.0", "fnmatch": "5.3.0", "getmxrr": "5.3.0", "getopt": "5.3.0", "imagecolorclosesthwb": "5.3.0", "inet_ntop": "5.3.0", "inet_pton": "5.3.0", "link": "5.3.0", "linkinfo": "5.3.0", "readlink": "5.3.0", "socket_create_pair": "5.3.0", "stream_socket_pair": "5.3.0", "symlink": "5.3.0", "time_nanosleep": "5.3.0", "time_sleep_until": "5.3.0" } } diff --git a/src/__phutil_library_init__.php b/src/__phutil_library_init__.php index ee442e5..0c43b39 100644 --- a/src/__phutil_library_init__.php +++ b/src/__phutil_library_init__.php @@ -1,70 +1,69 @@ <?php define('__LIBPHUTIL__', true); $root = dirname(__FILE__); require_once $root.'/moduleutils/core.php'; require_once $root.'/moduleutils/PhutilBootloader.php'; require_once $root.'/moduleutils/PhutilBootloaderException.php'; require_once $root.'/moduleutils/PhutilLibraryConflictException.php'; function __phutil_autoload($class_name) { // Occurs in PHP 5.2 with `call_user_func(array($this, 'self::f'))`. if ($class_name === 'self' || $class_name === 'parent') { return; } try { $loader = new PhutilSymbolLoader(); $symbols = $loader ->setType('class') ->setName($class_name) ->selectAndLoadSymbols(); if (!$symbols) { throw new PhutilMissingSymbolException( $class_name, pht('class or interface'), pht( - "the class or interface '%s' is not defined in the library ". - "map for any loaded %s library.", - $class_name, - 'phutil')); + 'The class or interface "%s" is not defined in the library '. + 'map of any loaded library.', + $class_name)); } } catch (PhutilMissingSymbolException $ex) { $should_throw = true; foreach (debug_backtrace() as $backtrace) { if (empty($backtrace['function'])) { continue; } switch ($backtrace['function']) { case 'class_exists': case 'interface_exists': case 'method_exists': case 'property_exists': case 'trait_exists': $should_throw = false; break; } } if (!$should_throw) { return false; } // If there are other SPL autoloaders installed, we need to give them a // chance to load the class. Throw the exception if we're the last // autoloader; if not, swallow it and let them take a shot. $autoloaders = spl_autoload_functions(); $last = end($autoloaders); if ($last == __FUNCTION__) { throw $ex; } } } spl_autoload_register('__phutil_autoload', $throw = true); phutil_register_library('phutil', __FILE__); diff --git a/src/auth/PhutilAmazonAuthAdapter.php b/src/auth/PhutilAmazonAuthAdapter.php index df1f988..94c529a 100644 --- a/src/auth/PhutilAmazonAuthAdapter.php +++ b/src/auth/PhutilAmazonAuthAdapter.php @@ -1,80 +1,80 @@ <?php /** * Authentication adapter for Amazon OAuth2. */ final class PhutilAmazonAuthAdapter extends PhutilOAuthAuthAdapter { public function getAdapterType() { return 'amazon'; } public function getAdapterDomain() { return 'amazon.com'; } public function getAccountID() { return $this->getOAuthAccountData('user_id'); } public function getAccountEmail() { return $this->getOAuthAccountData('email'); } public function getAccountName() { return null; } public function getAccountImageURI() { return null; } public function getAccountURI() { return null; } public function getAccountRealName() { return $this->getOAuthAccountData('name'); } protected function getAuthenticateBaseURI() { return 'https://www.amazon.com/ap/oa'; } protected function getTokenBaseURI() { return 'https://api.amazon.com/auth/o2/token'; } public function getScope() { return 'profile'; } public function getExtraAuthenticateParameters() { return array( 'response_type' => 'code', ); } public function getExtraTokenParameters() { return array( 'grant_type' => 'authorization_code', ); } protected function loadOAuthAccountData() { $uri = new PhutilURI('https://api.amazon.com/user/profile'); - $uri->setQueryParam('access_token', $this->getAccessToken()); + $uri->replaceQueryParam('access_token', $this->getAccessToken()); $future = new HTTPSFuture($uri); list($body) = $future->resolvex(); try { return phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from Amazon account data request.'), $ex); } } } diff --git a/src/auth/PhutilDisqusAuthAdapter.php b/src/auth/PhutilDisqusAuthAdapter.php index e3d0fd4..b9a33b2 100644 --- a/src/auth/PhutilDisqusAuthAdapter.php +++ b/src/auth/PhutilDisqusAuthAdapter.php @@ -1,84 +1,84 @@ <?php /** * Authentication adapter for Disqus OAuth2. */ final class PhutilDisqusAuthAdapter extends PhutilOAuthAuthAdapter { public function getAdapterType() { return 'disqus'; } public function getAdapterDomain() { return 'disqus.com'; } public function getAccountID() { return $this->getOAuthAccountData('id'); } public function getAccountEmail() { return $this->getOAuthAccountData('email'); } public function getAccountName() { return $this->getOAuthAccountData('username'); } public function getAccountImageURI() { return $this->getOAuthAccountData('avatar', 'permalink'); } public function getAccountURI() { return $this->getOAuthAccountData('profileUrl'); } public function getAccountRealName() { return $this->getOAuthAccountData('name'); } protected function getAuthenticateBaseURI() { return 'https://disqus.com/api/oauth/2.0/authorize/'; } protected function getTokenBaseURI() { return 'https://disqus.com/api/oauth/2.0/access_token/'; } public function getScope() { return 'read'; } public function getExtraAuthenticateParameters() { return array( 'response_type' => 'code', ); } public function getExtraTokenParameters() { return array( 'grant_type' => 'authorization_code', ); } protected function loadOAuthAccountData() { $uri = new PhutilURI('https://disqus.com/api/3.0/users/details.json'); - $uri->setQueryParam('api_key', $this->getClientID()); - $uri->setQueryParam('access_token', $this->getAccessToken()); + $uri->replaceQueryParam('api_key', $this->getClientID()); + $uri->replaceQueryParam('access_token', $this->getAccessToken()); $uri = (string)$uri; $future = new HTTPSFuture($uri); $future->setMethod('GET'); list($body) = $future->resolvex(); try { $data = phutil_json_decode($body); return $data['response']; } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from Disqus account data request.'), $ex); } } } diff --git a/src/auth/PhutilFacebookAuthAdapter.php b/src/auth/PhutilFacebookAuthAdapter.php index c294eb7..ab569a1 100644 --- a/src/auth/PhutilFacebookAuthAdapter.php +++ b/src/auth/PhutilFacebookAuthAdapter.php @@ -1,114 +1,114 @@ <?php /** * Authentication adapter for Facebook OAuth2. */ final class PhutilFacebookAuthAdapter extends PhutilOAuthAuthAdapter { private $requireSecureBrowsing; public function setRequireSecureBrowsing($require_secure_browsing) { $this->requireSecureBrowsing = $require_secure_browsing; return $this; } public function getAdapterType() { return 'facebook'; } public function getAdapterDomain() { return 'facebook.com'; } public function getAccountID() { return $this->getOAuthAccountData('id'); } public function getAccountEmail() { return $this->getOAuthAccountData('email'); } public function getAccountName() { $link = $this->getOAuthAccountData('link'); if (!$link) { return null; } $matches = null; if (!preg_match('@/([^/]+)$@', $link, $matches)) { return null; } return $matches[1]; } public function getAccountImageURI() { $picture = $this->getOAuthAccountData('picture'); if ($picture) { $picture_data = idx($picture, 'data'); if ($picture_data) { return idx($picture_data, 'url'); } } return null; } public function getAccountURI() { return $this->getOAuthAccountData('link'); } public function getAccountRealName() { return $this->getOAuthAccountData('name'); } public function getAccountSecuritySettings() { return $this->getOAuthAccountData('security_settings'); } protected function getAuthenticateBaseURI() { return 'https://www.facebook.com/dialog/oauth'; } protected function getTokenBaseURI() { return 'https://graph.facebook.com/oauth/access_token'; } protected function loadOAuthAccountData() { $fields = array( 'id', 'name', 'email', 'link', 'security_settings', 'picture', ); $uri = new PhutilURI('https://graph.facebook.com/me'); - $uri->setQueryParam('access_token', $this->getAccessToken()); - $uri->setQueryParam('fields', implode(',', $fields)); + $uri->replaceQueryParam('access_token', $this->getAccessToken()); + $uri->replaceQueryParam('fields', implode(',', $fields)); list($body) = id(new HTTPSFuture($uri))->resolvex(); $data = null; try { $data = phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from Facebook account data request.'), $ex); } if ($this->requireSecureBrowsing) { if (empty($data['security_settings']['secure_browsing']['enabled'])) { throw new Exception( pht( 'This Phabricator install requires you to enable Secure Browsing '. 'on your Facebook account in order to use it to log in to '. 'Phabricator. For more information, see %s', 'https://www.facebook.com/help/156201551113407/')); } } return $data; } } diff --git a/src/auth/PhutilGitHubAuthAdapter.php b/src/auth/PhutilGitHubAuthAdapter.php index 7abac01..6bd5b63 100644 --- a/src/auth/PhutilGitHubAuthAdapter.php +++ b/src/auth/PhutilGitHubAuthAdapter.php @@ -1,72 +1,72 @@ <?php /** * Authentication adapter for Github OAuth2. */ final class PhutilGitHubAuthAdapter extends PhutilOAuthAuthAdapter { public function getAdapterType() { return 'github'; } public function getAdapterDomain() { return 'github.com'; } public function getAccountID() { return $this->getOAuthAccountData('id'); } public function getAccountEmail() { return $this->getOAuthAccountData('email'); } public function getAccountName() { return $this->getOAuthAccountData('login'); } public function getAccountImageURI() { return $this->getOAuthAccountData('avatar_url'); } public function getAccountURI() { $name = $this->getAccountName(); if (strlen($name)) { return 'https://github.com/'.$name; } return null; } public function getAccountRealName() { return $this->getOAuthAccountData('name'); } protected function getAuthenticateBaseURI() { return 'https://github.com/login/oauth/authorize'; } protected function getTokenBaseURI() { return 'https://github.com/login/oauth/access_token'; } protected function loadOAuthAccountData() { $uri = new PhutilURI('https://api.github.com/user'); - $uri->setQueryParam('access_token', $this->getAccessToken()); + $uri->replaceQueryParam('access_token', $this->getAccessToken()); $future = new HTTPSFuture($uri); // NOTE: GitHub requires a User-Agent string. $future->addHeader('User-Agent', __CLASS__); list($body) = $future->resolvex(); try{ return phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from GitHub account data request.'), $ex); } } } diff --git a/src/auth/PhutilGoogleAuthAdapter.php b/src/auth/PhutilGoogleAuthAdapter.php index 1a739f1..11c1008 100644 --- a/src/auth/PhutilGoogleAuthAdapter.php +++ b/src/auth/PhutilGoogleAuthAdapter.php @@ -1,181 +1,105 @@ <?php /** * Authentication adapter for Google OAuth2. */ final class PhutilGoogleAuthAdapter extends PhutilOAuthAuthAdapter { public function getAdapterType() { return 'google'; } public function getAdapterDomain() { return 'google.com'; } public function getAccountID() { - $emails = $this->getOAuthAccountData('emails', array()); - foreach ($emails as $email) { - if (idx($email, 'type') == 'account') { - return idx($email, 'value'); - } - } - - throw new Exception( - pht( - 'Expected to retrieve an "account" email from Google Plus API call '. - 'to identify account, but failed.')); + return $this->getAccountEmail(); } public function getAccountEmail() { - return $this->getAccountID(); + return $this->getOAuthAccountData('email'); } public function getAccountName() { // Guess account name from email address, this is just a hint anyway. $email = $this->getAccountEmail(); $email = explode('@', $email); $email = head($email); return $email; } public function getAccountImageURI() { - $image = $this->getOAuthAccountData('image', array()); - $uri = idx($image, 'url'); + $uri = $this->getOAuthAccountData('picture'); // Change the "sz" parameter ("size") from the default to 100 to ask for // a 100x100px image. if ($uri !== null) { $uri = new PhutilURI($uri); - $uri->setQueryParam('sz', 100); + $uri->replaceQueryParam('sz', 100); $uri = (string)$uri; } return $uri; } public function getAccountURI() { - return $this->getOAuthAccountData('url'); + return $this->getOAuthAccountData('link'); } public function getAccountRealName() { - $name = $this->getOAuthAccountData('name', array()); - - // TODO: This could probably be made cleaner by looking up the API, but - // this should work to unbreak logins. - - $parts = array(); - $parts[] = idx($name, 'givenName'); - unset($name['givenName']); - $parts[] = idx($name, 'familyName'); - unset($name['familyName']); - $parts = array_merge($parts, $name); - $parts = array_filter($parts); - - return implode(' ', $parts); + return $this->getOAuthAccountData('name'); } protected function getAuthenticateBaseURI() { return 'https://accounts.google.com/o/oauth2/auth'; } protected function getTokenBaseURI() { return 'https://accounts.google.com/o/oauth2/token'; } public function getScope() { $scopes = array( 'email', 'profile', ); return implode(' ', $scopes); } public function getExtraAuthenticateParameters() { return array( 'response_type' => 'code', ); } public function getExtraTokenParameters() { return array( 'grant_type' => 'authorization_code', ); } protected function loadOAuthAccountData() { - $uri = new PhutilURI('https://www.googleapis.com/plus/v1/people/me'); - $uri->setQueryParam('access_token', $this->getAccessToken()); + $uri = new PhutilURI('https://www.googleapis.com/userinfo/v2/me'); + $uri->replaceQueryParam('access_token', $this->getAccessToken()); $future = new HTTPSFuture($uri); list($status, $body) = $future->resolve(); if ($status->isError()) { - $this->tryToThrowSpecializedError($status, $body); throw $status; } try { - return phutil_json_decode($body); + $result = phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected valid JSON response from Google account data request.'), $ex); } - } - - private function tryToThrowSpecializedError($status, $raw_body) { - if (!($status instanceof HTTPFutureHTTPResponseStatus)) { - return; - } - if ($status->getStatusCode() != 403) { - return; - } - - $body = phutil_json_decode($raw_body); - if (!$body) { - return; - } - - if (empty($body['error']['errors'][0])) { - return; - } - - $error = $body['error']['errors'][0]; - $domain = idx($error, 'domain'); - $reason = idx($error, 'reason'); - - if ($domain == 'usageLimits' && $reason == 'accessNotConfigured') { - throw new PhutilAuthConfigurationException( - pht( - 'Google returned an "%s" error. This usually means you need to '. - 'enable the "Google+ API" in your Google Cloud Console, under '. - '"APIs".'. - "\n\n". - 'Around March 2014, Google made some API changes which require this '. - 'configuration adjustment.'. - "\n\n". - 'Normally, you can resolve this issue by going to %s, then '. - 'clicking "API Project", then "APIs & auth", then turning the '. - '"Google+ API" on. The names you see on the console may be '. - 'different depending on how your integration is set up. If you '. - 'are not sure, you can hunt through the projects until you find '. - 'the one associated with the right Application ID under '. - '"Credentials". The Application ID this install is using is "%s".'. - "\n\n". - '(If you are unable to log into Phabricator, you can use '. - '"%s" to recover access to an administrator account.)'. - "\n\n". - 'Full HTTP Response'. - "\n\n%s", - 'accessNotConfigured', - 'https://console.developers.google.com/', - $this->getClientID(), - 'bin/auth recover', - $raw_body)); - } + return $result; } } diff --git a/src/auth/PhutilJIRAAuthAdapter.php b/src/auth/PhutilJIRAAuthAdapter.php index 57d20b9..a045065 100644 --- a/src/auth/PhutilJIRAAuthAdapter.php +++ b/src/auth/PhutilJIRAAuthAdapter.php @@ -1,162 +1,164 @@ <?php /** * Authentication adapter for JIRA OAuth1. */ final class PhutilJIRAAuthAdapter extends PhutilOAuth1AuthAdapter { // TODO: JIRA tokens expire (after 5 years) and we could surface and store // that. private $jiraBaseURI; private $adapterDomain; private $currentSession; private $userInfo; public function setJIRABaseURI($jira_base_uri) { $this->jiraBaseURI = $jira_base_uri; return $this; } public function getJIRABaseURI() { return $this->jiraBaseURI; } public function getAccountID() { // Make sure the handshake is finished; this method is used for its // side effect by Auth providers. $this->getHandshakeData(); return idx($this->getUserInfo(), 'key'); } public function getAccountName() { return idx($this->getUserInfo(), 'name'); } public function getAccountImageURI() { $avatars = idx($this->getUserInfo(), 'avatarUrls'); if ($avatars) { return idx($avatars, '48x48'); } return null; } public function getAccountRealName() { return idx($this->getUserInfo(), 'displayName'); } public function getAccountEmail() { return idx($this->getUserInfo(), 'emailAddress'); } public function getAdapterType() { return 'jira'; } public function getAdapterDomain() { return $this->adapterDomain; } public function setAdapterDomain($domain) { $this->adapterDomain = $domain; return $this; } protected function getSignatureMethod() { return 'RSA-SHA1'; } protected function getRequestTokenURI() { return $this->getJIRAURI('plugins/servlet/oauth/request-token'); } protected function getAuthorizeTokenURI() { return $this->getJIRAURI('plugins/servlet/oauth/authorize'); } protected function getValidateTokenURI() { return $this->getJIRAURI('plugins/servlet/oauth/access-token'); } private function getJIRAURI($path) { return rtrim($this->jiraBaseURI, '/').'/'.ltrim($path, '/'); } private function getUserInfo() { if ($this->userInfo === null) { $this->currentSession = $this->newJIRAFuture('rest/auth/1/session', 'GET') ->resolveJSON(); // The session call gives us the username, but not the user key or other // information. Make a second call to get additional information. $params = array( 'username' => $this->currentSession['name'], ); $this->userInfo = $this->newJIRAFuture('rest/api/2/user', 'GET', $params) ->resolveJSON(); } return $this->userInfo; } public static function newJIRAKeypair() { $config = array( 'digest_alg' => 'sha512', 'private_key_bits' => 4096, 'private_key_type' => OPENSSL_KEYTYPE_RSA, ); $res = openssl_pkey_new($config); if (!$res) { throw new Exception(pht('%s failed!', 'openssl_pkey_new()')); } $private_key = null; $ok = openssl_pkey_export($res, $private_key); if (!$ok) { throw new Exception(pht('%s failed!', 'openssl_pkey_export()')); } $public_key = openssl_pkey_get_details($res); if (!$ok || empty($public_key['key'])) { throw new Exception(pht('%s failed!', 'openssl_pkey_get_details()')); } $public_key = $public_key['key']; return array($public_key, $private_key); } /** * JIRA indicates that the user has clicked the "Deny" button by passing a * well known `oauth_verifier` value ("denied"), which we check for here. */ protected function willFinishOAuthHandshake() { $jira_magic_word = 'denied'; if ($this->getVerifier() == $jira_magic_word) { throw new PhutilAuthUserAbortedException(); } } public function newJIRAFuture($path, $method, $params = array()) { - $uri = new PhutilURI($this->getJIRAURI($path)); if ($method == 'GET') { - $uri->setQueryParams($params); - $params = array(); + $uri_params = $params; + $body_params = array(); } else { // For other types of requests, JIRA expects the request body to be // JSON encoded. - $params = json_encode($params); + $uri_params = array(); + $body_params = phutil_json_encode($params); } + $uri = new PhutilURI($this->getJIRAURI($path), $uri_params); + // JIRA returns a 415 error if we don't provide a Content-Type header. - return $this->newOAuth1Future($uri, $params) + return $this->newOAuth1Future($uri, $body_params) ->setMethod($method) ->addHeader('Content-Type', 'application/json'); } } diff --git a/src/auth/PhutilOAuth1AuthAdapter.php b/src/auth/PhutilOAuth1AuthAdapter.php index fe5e3b4..aad5f06 100644 --- a/src/auth/PhutilOAuth1AuthAdapter.php +++ b/src/auth/PhutilOAuth1AuthAdapter.php @@ -1,211 +1,211 @@ <?php /** * Abstract adapter for OAuth1 providers. */ abstract class PhutilOAuth1AuthAdapter extends PhutilAuthAdapter { private $consumerKey; private $consumerSecret; private $token; private $tokenSecret; private $verifier; private $handshakeData; private $callbackURI; private $privateKey; public function setPrivateKey(PhutilOpaqueEnvelope $private_key) { $this->privateKey = $private_key; return $this; } public function getPrivateKey() { return $this->privateKey; } public function setCallbackURI($callback_uri) { $this->callbackURI = $callback_uri; return $this; } public function getCallbackURI() { return $this->callbackURI; } public function setVerifier($verifier) { $this->verifier = $verifier; return $this; } public function getVerifier() { return $this->verifier; } public function setConsumerSecret(PhutilOpaqueEnvelope $consumer_secret) { $this->consumerSecret = $consumer_secret; return $this; } public function getConsumerSecret() { return $this->consumerSecret; } public function setConsumerKey($consumer_key) { $this->consumerKey = $consumer_key; return $this; } public function getConsumerKey() { return $this->consumerKey; } public function setTokenSecret($token_secret) { $this->tokenSecret = $token_secret; return $this; } public function getTokenSecret() { return $this->tokenSecret; } public function setToken($token) { $this->token = $token; return $this; } public function getToken() { return $this->token; } protected function getHandshakeData() { if ($this->handshakeData === null) { $this->finishOAuthHandshake(); } return $this->handshakeData; } abstract protected function getRequestTokenURI(); abstract protected function getAuthorizeTokenURI(); abstract protected function getValidateTokenURI(); protected function getSignatureMethod() { return 'HMAC-SHA1'; } public function getContentSecurityPolicyFormActions() { return array( $this->getAuthorizeTokenURI(), ); } protected function newOAuth1Future($uri, $data = array()) { $future = id(new PhutilOAuth1Future($uri, $data)) ->setMethod('POST') ->setSignatureMethod($this->getSignatureMethod()); $consumer_key = $this->getConsumerKey(); if (strlen($consumer_key)) { $future->setConsumerKey($consumer_key); } else { throw new Exception( pht( '%s is required!', 'setConsumerKey()')); } $consumer_secret = $this->getConsumerSecret(); if ($consumer_secret) { $future->setConsumerSecret($consumer_secret); } if (strlen($this->getToken())) { $future->setToken($this->getToken()); } if (strlen($this->getTokenSecret())) { $future->setTokenSecret($this->getTokenSecret()); } if ($this->getPrivateKey()) { $future->setPrivateKey($this->getPrivateKey()); } return $future; } public function getClientRedirectURI() { $request_token_uri = $this->getRequestTokenURI(); $future = $this->newOAuth1Future($request_token_uri); if (strlen($this->getCallbackURI())) { $future->setCallbackURI($this->getCallbackURI()); } list($body) = $future->resolvex(); $data = id(new PhutilQueryStringParser())->parseQueryString($body); // NOTE: Per the spec, this value MUST be the string 'true'. $confirmed = idx($data, 'oauth_callback_confirmed'); if ($confirmed !== 'true') { throw new Exception( pht("Expected '%s' to be '%s'!", 'oauth_callback_confirmed', 'true')); } $this->readTokenAndTokenSecret($data); $authorize_token_uri = new PhutilURI($this->getAuthorizeTokenURI()); - $authorize_token_uri->setQueryParam('oauth_token', $this->getToken()); + $authorize_token_uri->replaceQueryParam('oauth_token', $this->getToken()); return (string)$authorize_token_uri; } protected function finishOAuthHandshake() { $this->willFinishOAuthHandshake(); if (!$this->getToken()) { throw new Exception(pht('Expected token to finish OAuth handshake!')); } if (!$this->getVerifier()) { throw new Exception(pht('Expected verifier to finish OAuth handshake!')); } $validate_uri = $this->getValidateTokenURI(); $params = array( 'oauth_verifier' => $this->getVerifier(), ); list($body) = $this->newOAuth1Future($validate_uri, $params)->resolvex(); $data = id(new PhutilQueryStringParser())->parseQueryString($body); $this->readTokenAndTokenSecret($data); $this->handshakeData = $data; } private function readTokenAndTokenSecret(array $data) { $token = idx($data, 'oauth_token'); if (!$token) { throw new Exception(pht("Expected '%s' in response!", 'oauth_token')); } $token_secret = idx($data, 'oauth_token_secret'); if (!$token_secret) { throw new Exception( pht("Expected '%s' in response!", 'oauth_token_secret')); } $this->setToken($token); $this->setTokenSecret($token_secret); return $this; } /** * Hook that allows subclasses to take actions before the OAuth handshake * is completed. */ protected function willFinishOAuthHandshake() { return; } } diff --git a/src/auth/PhutilOAuthAuthAdapter.php b/src/auth/PhutilOAuthAuthAdapter.php index 4289f3f..47d299e 100644 --- a/src/auth/PhutilOAuthAuthAdapter.php +++ b/src/auth/PhutilOAuthAuthAdapter.php @@ -1,229 +1,228 @@ <?php /** * Abstract adapter for OAuth2 providers. */ abstract class PhutilOAuthAuthAdapter extends PhutilAuthAdapter { private $clientID; private $clientSecret; private $redirectURI; private $scope; private $state; private $code; private $accessTokenData; private $oauthAccountData; abstract protected function getAuthenticateBaseURI(); abstract protected function getTokenBaseURI(); abstract protected function loadOAuthAccountData(); public function getAuthenticateURI() { - $uri = new PhutilURI($this->getAuthenticateBaseURI()); - $uri->setQueryParam('client_id', $this->getClientID()); - $uri->setQueryParam('scope', $this->getScope()); - $uri->setQueryParam('redirect_uri', $this->getRedirectURI()); - $uri->setQueryParam('state', $this->getState()); - - foreach ($this->getExtraAuthenticateParameters() as $key => $value) { - $uri->setQueryParam($key, $value); - } + $params = array( + 'client_id' => $this->getClientID(), + 'scope' => $this->getScope(), + 'redirect_uri' => $this->getRedirectURI(), + 'state' => $this->getState(), + ) + $this->getExtraAuthenticateParameters(); + + $uri = new PhutilURI($this->getAuthenticateBaseURI(), $params); - return (string)$uri; + return phutil_string_cast($uri); } public function getAdapterType() { $this_class = get_class($this); $type_name = str_replace('PhutilAuthAdapterOAuth', '', $this_class); return strtolower($type_name); } public function setState($state) { $this->state = $state; return $this; } public function getState() { return $this->state; } public function setCode($code) { $this->code = $code; return $this; } public function getCode() { return $this->code; } public function setRedirectURI($redirect_uri) { $this->redirectURI = $redirect_uri; return $this; } public function getRedirectURI() { return $this->redirectURI; } public function getExtraAuthenticateParameters() { return array(); } public function getExtraTokenParameters() { return array(); } public function getExtraRefreshParameters() { return array(); } public function setScope($scope) { $this->scope = $scope; return $this; } public function getScope() { return $this->scope; } public function setClientSecret(PhutilOpaqueEnvelope $client_secret) { $this->clientSecret = $client_secret; return $this; } public function getClientSecret() { return $this->clientSecret; } public function setClientID($client_id) { $this->clientID = $client_id; return $this; } public function getClientID() { return $this->clientID; } public function getAccessToken() { return $this->getAccessTokenData('access_token'); } public function getAccessTokenExpires() { return $this->getAccessTokenData('expires_epoch'); } public function getRefreshToken() { return $this->getAccessTokenData('refresh_token'); } protected function getAccessTokenData($key, $default = null) { if ($this->accessTokenData === null) { $this->accessTokenData = $this->loadAccessTokenData(); } return idx($this->accessTokenData, $key, $default); } public function supportsTokenRefresh() { return false; } public function refreshAccessToken($refresh_token) { $this->accessTokenData = $this->loadRefreshTokenData($refresh_token); return $this; } protected function loadRefreshTokenData($refresh_token) { $params = array( 'refresh_token' => $refresh_token, ) + $this->getExtraRefreshParameters(); // NOTE: Make sure we return the refresh_token so that subsequent // calls to getRefreshToken() return it; providers normally do not echo // it back for token refresh requests. return $this->makeTokenRequest($params) + array( 'refresh_token' => $refresh_token, ); } protected function loadAccessTokenData() { $code = $this->getCode(); if (!$code) { throw new PhutilInvalidStateException('setCode'); } $params = array( 'code' => $this->getCode(), ) + $this->getExtraTokenParameters(); return $this->makeTokenRequest($params); } private function makeTokenRequest(array $params) { $uri = $this->getTokenBaseURI(); $query_data = array( 'client_id' => $this->getClientID(), 'client_secret' => $this->getClientSecret()->openEnvelope(), 'redirect_uri' => $this->getRedirectURI(), ) + $params; $future = new HTTPSFuture($uri, $query_data); $future->setMethod('POST'); list($body) = $future->resolvex(); $data = $this->readAccessTokenResponse($body); if (isset($data['expires_in'])) { $data['expires_epoch'] = $data['expires_in']; } else if (isset($data['expires'])) { $data['expires_epoch'] = $data['expires']; } // If we got some "expires" value back, interpret it as an epoch timestamp // if it's after the year 2010 and as a relative number of seconds // otherwise. if (isset($data['expires_epoch'])) { if ($data['expires_epoch'] < (60 * 60 * 24 * 365 * 40)) { $data['expires_epoch'] += time(); } } if (isset($data['error'])) { throw new Exception(pht('Access token error: %s', $data['error'])); } return $data; } protected function readAccessTokenResponse($body) { // NOTE: Most providers either return JSON or HTTP query strings, so try // both mechanisms. If your provider does something else, override this // method. $data = json_decode($body, true); if (!is_array($data)) { $data = array(); parse_str($body, $data); } if (empty($data['access_token']) && empty($data['error'])) { throw new Exception( pht('Failed to decode OAuth access token response: %s', $body)); } return $data; } protected function getOAuthAccountData($key, $default = null) { if ($this->oauthAccountData === null) { $this->oauthAccountData = $this->loadOAuthAccountData(); } return idx($this->oauthAccountData, $key, $default); } } diff --git a/src/auth/PhutilPhabricatorAuthAdapter.php b/src/auth/PhutilPhabricatorAuthAdapter.php index 205d20b..e66ba32 100644 --- a/src/auth/PhutilPhabricatorAuthAdapter.php +++ b/src/auth/PhutilPhabricatorAuthAdapter.php @@ -1,102 +1,102 @@ <?php /** * Authentication adapter for Phabricator OAuth2. */ final class PhutilPhabricatorAuthAdapter extends PhutilOAuthAuthAdapter { private $phabricatorBaseURI; private $adapterDomain; public function setPhabricatorBaseURI($uri) { $this->phabricatorBaseURI = $uri; return $this; } public function getPhabricatorBaseURI() { return $this->phabricatorBaseURI; } public function getAdapterDomain() { return $this->adapterDomain; } public function setAdapterDomain($domain) { $this->adapterDomain = $domain; return $this; } public function getAdapterType() { return 'phabricator'; } public function getAccountID() { return $this->getOAuthAccountData('phid'); } public function getAccountEmail() { return $this->getOAuthAccountData('primaryEmail'); } public function getAccountName() { return $this->getOAuthAccountData('userName'); } public function getAccountImageURI() { return $this->getOAuthAccountData('image'); } public function getAccountURI() { return $this->getOAuthAccountData('uri'); } public function getAccountRealName() { return $this->getOAuthAccountData('realName'); } protected function getAuthenticateBaseURI() { return $this->getPhabricatorURI('oauthserver/auth/'); } protected function getTokenBaseURI() { return $this->getPhabricatorURI('oauthserver/token/'); } public function getScope() { return ''; } public function getExtraAuthenticateParameters() { return array( 'response_type' => 'code', ); } public function getExtraTokenParameters() { return array( 'grant_type' => 'authorization_code', ); } protected function loadOAuthAccountData() { $uri = id(new PhutilURI($this->getPhabricatorURI('api/user.whoami'))) - ->setQueryParam('access_token', $this->getAccessToken()); + ->replaceQueryParam('access_token', $this->getAccessToken()); list($body) = id(new HTTPSFuture($uri))->resolvex(); try { $data = phutil_json_decode($body); return $data['result']; } catch (PhutilJSONParserException $ex) { throw new Exception( pht( 'Expected valid JSON response from Phabricator %s request.', 'user.whoami'), $ex); } } private function getPhabricatorURI($path) { return rtrim($this->phabricatorBaseURI, '/').'/'.ltrim($path, '/'); } } diff --git a/src/auth/PhutilTwitterAuthAdapter.php b/src/auth/PhutilTwitterAuthAdapter.php index 9189ff4..6f738c7 100644 --- a/src/auth/PhutilTwitterAuthAdapter.php +++ b/src/auth/PhutilTwitterAuthAdapter.php @@ -1,73 +1,75 @@ <?php /** * Authentication adapter for Twitter OAuth1. */ final class PhutilTwitterAuthAdapter extends PhutilOAuth1AuthAdapter { private $userInfo; public function getAccountID() { return idx($this->getHandshakeData(), 'user_id'); } public function getAccountName() { return idx($this->getHandshakeData(), 'screen_name'); } public function getAccountURI() { $name = $this->getAccountName(); if (strlen($name)) { return 'https://twitter.com/'.$name; } return null; } public function getAccountImageURI() { $info = $this->getUserInfo(); return idx($info, 'profile_image_url'); } public function getAccountRealName() { $info = $this->getUserInfo(); return idx($info, 'name'); } public function getAdapterType() { return 'twitter'; } public function getAdapterDomain() { return 'twitter.com'; } protected function getRequestTokenURI() { return 'https://api.twitter.com/oauth/request_token'; } protected function getAuthorizeTokenURI() { return 'https://api.twitter.com/oauth/authorize'; } protected function getValidateTokenURI() { return 'https://api.twitter.com/oauth/access_token'; } private function getUserInfo() { if ($this->userInfo === null) { - $uri = new PhutilURI('https://api.twitter.com/1.1/users/show.json'); - $uri->setQueryParams( - array( - 'user_id' => $this->getAccountID(), - )); + $params = array( + 'user_id' => $this->getAccountID(), + ); + + $uri = new PhutilURI( + 'https://api.twitter.com/1.1/users/show.json', + $params); $data = $this->newOAuth1Future($uri) ->setMethod('GET') ->resolveJSON(); $this->userInfo = $data; } return $this->userInfo; } } diff --git a/src/conduit/ConduitClient.php b/src/conduit/ConduitClient.php index 21c5f52..065a42a 100644 --- a/src/conduit/ConduitClient.php +++ b/src/conduit/ConduitClient.php @@ -1,395 +1,395 @@ <?php final class ConduitClient extends Phobject { private $uri; private $host; private $connectionID; private $sessionKey; private $timeout = 300.0; private $username; private $password; private $publicKey; private $privateKey; private $conduitToken; private $oauthToken; const AUTH_ASYMMETRIC = 'asymmetric'; const SIGNATURE_CONSIGN_1 = 'Consign1.0/'; public function getConnectionID() { return $this->connectionID; } public function __construct($uri) { $this->uri = new PhutilURI($uri); if (!strlen($this->uri->getDomain())) { throw new Exception( pht("Conduit URI '%s' must include a valid host.", $uri)); } $this->host = $this->uri->getDomain(); } /** * Override the domain specified in the service URI and provide a specific * host identity. * * This can be used to connect to a specific node in a cluster environment. */ public function setHost($host) { $this->host = $host; return $this; } public function getHost() { return $this->host; } public function setConduitToken($conduit_token) { $this->conduitToken = $conduit_token; return $this; } public function getConduitToken() { return $this->conduitToken; } public function setOAuthToken($oauth_token) { $this->oauthToken = $oauth_token; return $this; } public function callMethodSynchronous($method, array $params) { return $this->callMethod($method, $params)->resolve(); } public function didReceiveResponse($method, $data) { if ($method == 'conduit.connect') { $this->sessionKey = idx($data, 'sessionKey'); $this->connectionID = idx($data, 'connectionID'); } return $data; } public function setTimeout($timeout) { $this->timeout = $timeout; return $this; } public function setSigningKeys( $public_key, PhutilOpaqueEnvelope $private_key) { $this->publicKey = $public_key; $this->privateKey = $private_key; return $this; } public function callMethod($method, array $params) { $meta = array(); if ($this->sessionKey) { $meta['sessionKey'] = $this->sessionKey; } if ($this->connectionID) { $meta['connectionID'] = $this->connectionID; } if ($method == 'conduit.connect') { $certificate = idx($params, 'certificate'); if ($certificate) { $token = time(); $params['authToken'] = $token; $params['authSignature'] = sha1($token.$certificate); } unset($params['certificate']); } if ($this->privateKey && $this->publicKey) { $meta['auth.type'] = self::AUTH_ASYMMETRIC; $meta['auth.key'] = $this->publicKey; $meta['auth.host'] = $this->getHostStringForSignature(); $signature = $this->signRequest($method, $params, $meta); $meta['auth.signature'] = $signature; } if ($this->conduitToken) { $meta['token'] = $this->conduitToken; } if ($this->oauthToken) { $meta['access_token'] = $this->oauthToken; } if ($meta) { $params['__conduit__'] = $meta; } $uri = id(clone $this->uri)->setPath('/api/'.$method); $data = array( 'params' => json_encode($params), 'output' => 'json', // This is a hint to Phabricator that the client expects a Conduit // response. It is not necessary, but provides better error messages in // some cases. '__conduit__' => true, ); // Always use the cURL-based HTTPSFuture, for proxy support and other // protocol edge cases that HTTPFuture does not support. $core_future = new HTTPSFuture($uri, $data); $core_future->addHeader('Host', $this->getHostStringForHeader()); $core_future->setMethod('POST'); $core_future->setTimeout($this->timeout); if ($this->username !== null) { $core_future->setHTTPBasicAuthCredentials( $this->username, $this->password); } return id(new ConduitFuture($core_future)) ->setClient($this, $method); } public function setBasicAuthCredentials($username, $password) { $this->username = $username; $this->password = new PhutilOpaqueEnvelope($password); return $this; } private function getHostStringForHeader() { return $this->newHostString(false); } private function getHostStringForSignature() { return $this->newHostString(true); } /** * Build a string describing the host for this request. * * This method builds strings in two modes: with explicit ports for request * signing (which always include the port number) and with implicit ports * for use in the "Host:" header of requests (which omit the port number if * the port is the same as the default port for the protocol). * * This implicit port behavior is similar to what browsers do, so it is less * likely to get us into trouble with webserver configurations. * * @param bool True to include the port explicitly. * @return string String describing the host for the request. */ private function newHostString($with_explicit_port) { $host = $this->getHost(); $uri = new PhutilURI($this->uri); $protocol = $uri->getProtocol(); $port = $uri->getPort(); $implicit_ports = array( 'https' => 443, ); $default_port = 80; $implicit_port = idx($implicit_ports, $protocol, $default_port); if ($with_explicit_port) { if (!$port) { $port = $implicit_port; } } else { if ($port == $implicit_port) { $port = null; } } if (!$port) { $result = $host; } else { $result = $host.':'.$port; } return $result; } private function signRequest( $method, array $params, array $meta) { $input = self::encodeRequestDataForSignature( $method, $params, $meta); $signature = null; $result = openssl_sign( $input, $signature, $this->privateKey->openEnvelope()); if (!$result) { throw new Exception( pht('Unable to sign Conduit request with signing key.')); } return self::SIGNATURE_CONSIGN_1.base64_encode($signature); } public static function verifySignature( $method, array $params, array $meta, $openssl_public_key) { $auth_type = idx($meta, 'auth.type'); switch ($auth_type) { case self::AUTH_ASYMMETRIC: break; default: throw new Exception( pht( 'Unable to verify request signature, specified "%s" '. '("%s") is unknown.', 'auth.type', $auth_type)); } $public_key = idx($meta, 'auth.key'); if (!strlen($public_key)) { throw new Exception( pht( 'Unable to verify request signature, no "%s" present in '. 'request protocol information.', 'auth.key')); } $signature = idx($meta, 'auth.signature'); if (!strlen($signature)) { throw new Exception( pht( 'Unable to verify request signature, no "%s" present '. 'in request protocol information.', 'auth.signature')); } $prefix = self::SIGNATURE_CONSIGN_1; if (strncmp($signature, $prefix, strlen($prefix)) !== 0) { throw new Exception( pht( 'Unable to verify request signature, signature format is not '. 'known.')); } $signature = substr($signature, strlen($prefix)); $input = self::encodeRequestDataForSignature( $method, $params, $meta); $signature = base64_decode($signature); $trap = new PhutilErrorTrap(); $result = @openssl_verify( $input, $signature, $openssl_public_key); $err = $trap->getErrorsAsString(); $trap->destroy(); if ($result === 1) { // Signature is good. return true; } else if ($result === 0) { // Signature is bad. throw new Exception( pht( 'Request signature verification failed: signature is not correct.')); } else { // Some kind of error. if (strlen($err)) { throw new Exception( pht( 'OpenSSL encountered an error verifying the request signature: %s', $err)); } else { throw new Exception( pht( 'OpenSSL encountered an unknown error verifying the request: %s', $err)); } } } private static function encodeRequestDataForSignature( $method, array $params, array $meta) { unset($meta['auth.signature']); $structure = array( 'method' => $method, 'protocol' => $meta, 'parameters' => $params, ); return self::encodeRawDataForSignature($structure); } public static function encodeRawDataForSignature($data) { $out = array(); if (is_array($data)) { - if (!$data || (array_keys($data) == range(0, count($data) - 1))) { + if (phutil_is_natural_list($data)) { $out[] = 'A'; $out[] = count($data); $out[] = ':'; foreach ($data as $value) { $out[] = self::encodeRawDataForSignature($value); } } else { ksort($data); $out[] = 'O'; $out[] = count($data); $out[] = ':'; foreach ($data as $key => $value) { $out[] = self::encodeRawDataForSignature($key); $out[] = self::encodeRawDataForSignature($value); } } } else if (is_string($data)) { $out[] = 'S'; $out[] = strlen($data); $out[] = ':'; $out[] = $data; } else if (is_int($data)) { $out[] = 'I'; $out[] = strlen((string)$data); $out[] = ':'; $out[] = (string)$data; } else if (is_null($data)) { $out[] = 'N'; $out[] = ':'; } else if ($data === true) { $out[] = 'B1:'; } else if ($data === false) { $out[] = 'B0:'; } else { throw new Exception( pht( 'Unexpected data type in request data: %s.', gettype($data))); } return implode('', $out); } } diff --git a/src/error/PhutilProxyException.php b/src/error/PhutilProxyException.php index 8326959..4f477ae 100644 --- a/src/error/PhutilProxyException.php +++ b/src/error/PhutilProxyException.php @@ -1,32 +1,37 @@ <?php /** * Prior to PHP 5.3, PHP does not support nested exceptions; this class provides * limited support for nested exceptions. Use methods on * @{class:PhutilErrorHandler} to unnest exceptions in a forward-compatible way. * * @concrete-extensible */ class PhutilProxyException extends Exception { private $previousException; - public function __construct($message, Exception $previous, $code = 0) { + public function __construct($message, $previous, $code = 0) { $this->previousException = $previous; - if (version_compare(PHP_VERSION, '5.3.0', '>=')) { + // This may be an "Exception" or a "Throwable". The "__construct()" method + // for the Exception is documented as taking an Exception, not a Throwable. + // Although passing a Throwable appears to work in PHP 7.3, don't risk it. + $is_exception = ($previous instanceof Exception); + + if (version_compare(PHP_VERSION, '5.3.0', '>=') && $is_exception) { parent::__construct($message, $code, $previous); } else { parent::__construct($message, $code); } } public function getPreviousException() { // NOTE: This can not be named "getPrevious()" because that method is final // after PHP 5.3. Similarly, the property can not be named "previous" // because HPHP declares a property with the same name and "protected" // visibility. return $this->previousException; } } diff --git a/src/error/phlog.php b/src/error/phlog.php index a36d0aa..105e074 100644 --- a/src/error/phlog.php +++ b/src/error/phlog.php @@ -1,68 +1,68 @@ <?php /** * libphutil log function for development debugging. Takes any argument and * forwards it to registered listeners. This is essentially a more powerful * version of `error_log()`. * * @param wild Any value you want printed to the error log or other registered * logs/consoles. * @param ... Other values to be logged. * @return wild Passed $value. */ function phlog($value/* , ... */) { // Get the caller information. $trace = debug_backtrace(); $metadata = array( 'file' => $trace[0]['file'], 'line' => $trace[0]['line'], 'trace' => $trace, ); foreach (func_get_args() as $event) { $data = $metadata; - if ($event instanceof Exception) { + if (($event instanceof Exception) || ($event instanceof Throwable)) { $type = PhutilErrorHandler::EXCEPTION; // If this is an exception, proxy it and generate a composite trace which // shows both where the phlog() was called and where the exception was // originally thrown from. $proxy = new PhutilProxyException('', $event); $trace = PhutilErrorHandler::getExceptionTrace($proxy); $data['trace'] = $trace; } else { $type = PhutilErrorHandler::PHLOG; } PhutilErrorHandler::dispatchErrorMessage($type, $event, $data); } return $value; } /** * Example @{class:PhutilErrorHandler} error listener callback. When you call * `PhutilErrorHandler::setErrorListener()`, you must pass a callback function * with the same signature as this one. * * NOTE: @{class:PhutilErrorHandler} handles writing messages to the error * log, so you only need to provide a listener if you have some other console * (like Phabricator's DarkConsole) which you //also// want to send errors to. * * NOTE: You will receive errors which were silenced with the `@` operator. If * you don't want to display these, test for `@` being in effect by checking if * `error_reporting() === 0` before displaying the error. * * @param const A PhutilErrorHandler constant, like PhutilErrorHandler::ERROR, * which indicates the event type (e.g. error, exception, * user message). * @param wild The event value, like the Exception object for an exception * event, an error string for an error event, or some user object * for user messages. * @param dict A dictionary of metadata about the event. The keys 'file', * 'line' and 'trace' are always available. Other keys may be * present, depending on the event type. * @return void */ function phutil_error_listener_example($event, $value, array $metadata) { throw new Exception(pht('This is just an example function!')); } diff --git a/src/filesystem/Filesystem.php b/src/filesystem/Filesystem.php index 2c2928a..a88ed12 100644 --- a/src/filesystem/Filesystem.php +++ b/src/filesystem/Filesystem.php @@ -1,1156 +1,1248 @@ <?php /** * Simple wrapper class for common filesystem tasks like reading and writing * files. When things go wrong, this class throws detailed exceptions with * good information about what didn't work. * * Filesystem will resolve relative paths against PWD from the environment. * When Filesystem is unable to complete an operation, it throws a * FilesystemException. * * @task directory Directories * @task file Files * @task path Paths * @task exec Executables * @task assert Assertions */ final class Filesystem extends Phobject { /* -( Files )-------------------------------------------------------------- */ /** * Read a file in a manner similar to file_get_contents(), but throw detailed * exceptions on failure. * * @param string File path to read. This file must exist and be readable, * or an exception will be thrown. * @return string Contents of the specified file. * * @task file */ public static function readFile($path) { $path = self::resolvePath($path); self::assertExists($path); self::assertIsFile($path); self::assertReadable($path); $data = @file_get_contents($path); if ($data === false) { throw new FilesystemException( $path, pht("Failed to read file '%s'.", $path)); } return $data; } /** * Make assertions about the state of path in preparation for * writeFile() and writeFileIfChanged(). */ private static function assertWritableFile($path) { $path = self::resolvePath($path); $dir = dirname($path); self::assertExists($dir); self::assertIsDirectory($dir); // File either needs to not exist and have a writable parent, or be // writable itself. $exists = true; try { self::assertNotExists($path); $exists = false; } catch (Exception $ex) { self::assertWritable($path); } if (!$exists) { self::assertWritable($dir); } } /** * Write a file in a manner similar to file_put_contents(), but throw * detailed exceptions on failure. If the file already exists, it will be * overwritten. * * @param string File path to write. This file must be writable and its * parent directory must exist. * @param string Data to write. * * @task file */ public static function writeFile($path, $data) { self::assertWritableFile($path); if (@file_put_contents($path, $data) === false) { throw new FilesystemException( $path, pht("Failed to write file '%s'.", $path)); } } /** * Write a file in a manner similar to `file_put_contents()`, but only touch * the file if the contents are different, and throw detailed exceptions on * failure. * * As this function is used in build steps to update code, if we write a new * file, we do so by writing to a temporary file and moving it into place. * This allows a concurrently reading process to see a consistent view of the * file without needing locking; any given read of the file is guaranteed to * be self-consistent and not see partial file contents. * * @param string file path to write * @param string data to write * * @return boolean indicating whether the file was changed by this function. */ public static function writeFileIfChanged($path, $data) { if (file_exists($path)) { $current = self::readFile($path); if ($current === $data) { return false; } } self::assertWritableFile($path); // Create the temporary file alongside the intended destination, // as this ensures that the rename() will be atomic (on the same fs) $dir = dirname($path); $temp = tempnam($dir, 'GEN'); if (!$temp) { throw new FilesystemException( $dir, pht('Unable to create temporary file in %s.', $dir)); } try { self::writeFile($temp, $data); // tempnam will always restrict ownership to us, broaden // it so that these files respect the actual umask self::changePermissions($temp, 0666 & ~umask()); // This will appear atomic to concurrent readers $ok = rename($temp, $path); if (!$ok) { throw new FilesystemException( $path, pht('Unable to move %s to %s.', $temp, $path)); } } catch (Exception $e) { // Make best effort to remove temp file unlink($temp); throw $e; } return true; } /** * Write data to unique file, without overwriting existing files. This is * useful if you want to write a ".bak" file or something similar, but want * to make sure you don't overwrite something already on disk. * * This function will add a number to the filename if the base name already * exists, e.g. "example.bak", "example.bak.1", "example.bak.2", etc. (Don't * rely on this exact behavior, of course.) * * @param string Suggested filename, like "example.bak". This name will * be used if it does not exist, or some similar name will * be chosen if it does. * @param string Data to write to the file. * @return string Path to a newly created and written file which did not * previously exist, like "example.bak.3". * @task file */ public static function writeUniqueFile($base, $data) { $full_path = self::resolvePath($base); $sequence = 0; assert_stringlike($data); // Try 'file', 'file.1', 'file.2', etc., until something doesn't exist. while (true) { $try_path = $full_path; if ($sequence) { $try_path .= '.'.$sequence; } $handle = @fopen($try_path, 'x'); if ($handle) { $ok = fwrite($handle, $data); if ($ok === false) { throw new FilesystemException( $try_path, pht('Failed to write file data.')); } $ok = fclose($handle); if (!$ok) { throw new FilesystemException( $try_path, pht('Failed to close file handle.')); } return $try_path; } $sequence++; } } /** * Append to a file without having to deal with file handles, with * detailed exceptions on failure. * * @param string File path to write. This file must be writable or its * parent directory must exist and be writable. * @param string Data to write. * * @task file */ public static function appendFile($path, $data) { $path = self::resolvePath($path); // Use self::writeFile() if the file doesn't already exist try { self::assertExists($path); } catch (FilesystemException $ex) { self::writeFile($path, $data); return; } // File needs to exist or the directory needs to be writable $dir = dirname($path); self::assertExists($dir); self::assertIsDirectory($dir); self::assertWritable($dir); assert_stringlike($data); if (($fh = fopen($path, 'a')) === false) { throw new FilesystemException( $path, pht("Failed to open file '%s'.", $path)); } $dlen = strlen($data); if (fwrite($fh, $data) !== $dlen) { throw new FilesystemException( $path, pht("Failed to write %d bytes to '%s'.", $dlen, $path)); } if (!fflush($fh) || !fclose($fh)) { throw new FilesystemException( $path, pht("Failed closing file '%s' after write.", $path)); } } /** * Copy a file, preserving file attributes (if relevant for the OS). * * @param string File path to copy from. This file must exist and be * readable, or an exception will be thrown. * @param string File path to copy to. If a file exists at this path * already, it wll be overwritten. * * @task file */ public static function copyFile($from, $to) { $from = self::resolvePath($from); $to = self::resolvePath($to); self::assertExists($from); self::assertIsFile($from); self::assertReadable($from); if (phutil_is_windows()) { execx('copy /Y %s %s', $from, $to); } else { execx('cp -p %s %s', $from, $to); } } /** * Remove a file or directory. * * @param string File to a path or directory to remove. * @return void * * @task file */ public static function remove($path) { if (!strlen($path)) { // Avoid removing PWD. throw new Exception( pht( 'No path provided to %s.', __FUNCTION__.'()')); } $path = self::resolvePath($path); if (!file_exists($path)) { return; } self::executeRemovePath($path); } /** * Rename a file or directory. * * @param string Old path. * @param string New path. * * @task file */ public static function rename($old, $new) { $old = self::resolvePath($old); $new = self::resolvePath($new); self::assertExists($old); $ok = rename($old, $new); if (!$ok) { throw new FilesystemException( $new, pht("Failed to rename '%s' to '%s'!", $old, $new)); } } /** * Internal. Recursively remove a file or an entire directory. Implements * the core function of @{method:remove} in a way that works on Windows. * * @param string File to a path or directory to remove. * @return void * * @task file */ private static function executeRemovePath($path) { if (is_dir($path) && !is_link($path)) { foreach (self::listDirectory($path, true) as $child) { self::executeRemovePath($path.DIRECTORY_SEPARATOR.$child); } $ok = rmdir($path); if (!$ok) { throw new FilesystemException( $path, pht("Failed to remove directory '%s'!", $path)); } } else { $ok = unlink($path); if (!$ok) { throw new FilesystemException( $path, pht("Failed to remove file '%s'!", $path)); } } } /** * Change the permissions of a file or directory. * * @param string Path to the file or directory. * @param int Permission umask. Note that umask is in octal, so you * should specify it as, e.g., `0777', not `777'. * @return void * * @task file */ public static function changePermissions($path, $umask) { $path = self::resolvePath($path); self::assertExists($path); if (!@chmod($path, $umask)) { $readable_umask = sprintf('%04o', $umask); throw new FilesystemException( $path, pht("Failed to chmod '%s' to '%s'.", $path, $readable_umask)); } } /** * Get the last modified time of a file * * @param string Path to file * @return int Time last modified * * @task file */ public static function getModifiedTime($path) { $path = self::resolvePath($path); self::assertExists($path); self::assertIsFile($path); self::assertReadable($path); $modified_time = @filemtime($path); if ($modified_time === false) { throw new FilesystemException( $path, pht('Failed to read modified time for %s.', $path)); } return $modified_time; } /** * Read random bytes from /dev/urandom or equivalent. See also * @{method:readRandomCharacters}. * * @param int Number of bytes to read. * @return string Random bytestring of the provided length. * * @task file */ public static function readRandomBytes($number_of_bytes) { $number_of_bytes = (int)$number_of_bytes; if ($number_of_bytes < 1) { throw new Exception(pht('You must generate at least 1 byte of entropy.')); } + // Under PHP 7.2.0 and newer, we have a reasonable builtin. For older + // versions, we fall back to various sources which have a roughly similar + // effect. + if (function_exists('random_bytes')) { + return random_bytes($number_of_bytes); + } + // Try to use `openssl_random_pseudo_bytes()` if it's available. This source // is the most widely available source, and works on Windows/Linux/OSX/etc. if (function_exists('openssl_random_pseudo_bytes')) { $strong = true; $data = openssl_random_pseudo_bytes($number_of_bytes, $strong); if (!$strong) { // NOTE: This indicates we're using a weak random source. This is // probably OK, but maybe we should be more strict here. } if ($data === false) { throw new Exception( pht( '%s failed to generate entropy!', 'openssl_random_pseudo_bytes()')); } if (strlen($data) != $number_of_bytes) { throw new Exception( pht( '%s returned an unexpected number of bytes (got %s, expected %s)!', 'openssl_random_pseudo_bytes()', new PhutilNumber(strlen($data)), new PhutilNumber($number_of_bytes))); } return $data; } // Try to use `/dev/urandom` if it's available. This is usually available // on non-Windows systems, but some PHP config (open_basedir) and chrooting // may limit our access to it. $urandom = @fopen('/dev/urandom', 'rb'); if ($urandom) { $data = @fread($urandom, $number_of_bytes); @fclose($urandom); if (strlen($data) != $number_of_bytes) { throw new FilesystemException( '/dev/urandom', pht('Failed to read random bytes!')); } return $data; } // (We might be able to try to generate entropy here from a weaker source // if neither of the above sources panned out, see some discussion in // T4153.) // We've failed to find any valid entropy source. Try to fail in the most // useful way we can, based on the platform. if (phutil_is_windows()) { throw new Exception( pht( '%s requires the PHP OpenSSL extension to be installed and enabled '. 'to access an entropy source. On Windows, this extension is usually '. 'installed but not enabled by default. Enable it in your "s".', __METHOD__.'()', 'php.ini')); } throw new Exception( pht( '%s requires the PHP OpenSSL extension or access to "%s". Install or '. 'enable the OpenSSL extension, or make sure "%s" is accessible.', __METHOD__.'()', '/dev/urandom', '/dev/urandom')); } /** * Read random alphanumeric characters from /dev/urandom or equivalent. This * method operates like @{method:readRandomBytes} but produces alphanumeric * output (a-z, 0-9) so it's appropriate for use in URIs and other contexts * where it needs to be human readable. * * @param int Number of characters to read. * @return string Random character string of the provided length. * * @task file */ public static function readRandomCharacters($number_of_characters) { // NOTE: To produce the character string, we generate a random byte string // of the same length, select the high 5 bits from each byte, and // map that to 32 alphanumeric characters. This could be improved (we // could improve entropy per character with base-62, and some entropy // sources might be less entropic if we discard the low bits) but for // reasonable cases where we have a good entropy source and are just // generating some kind of human-readable secret this should be more than // sufficient and is vastly simpler than trying to do bit fiddling. $map = array_merge(range('a', 'z'), range('2', '7')); $result = ''; $bytes = self::readRandomBytes($number_of_characters); for ($ii = 0; $ii < $number_of_characters; $ii++) { $result .= $map[ord($bytes[$ii]) >> 3]; } return $result; } + /** + * Generate a random integer value in a given range. + * + * This method uses less-entropic random sources under older versions of PHP. + * + * @param int Minimum value, inclusive. + * @param int Maximum value, inclusive. + */ + public static function readRandomInteger($min, $max) { + if (!is_int($min)) { + throw new Exception(pht('Minimum value must be an integer.')); + } + + if (!is_int($max)) { + throw new Exception(pht('Maximum value must be an integer.')); + } + + if ($min > $max) { + throw new Exception( + pht( + 'Minimum ("%d") must not be greater than maximum ("%d").', + $min, + $max)); + } + + // Under PHP 7.2.0 and newer, we can just use "random_int()". This function + // is intended to generate cryptographically usable entropy. + if (function_exists('random_int')) { + return random_int($min, $max); + } + + // We could find a stronger source for this, but correctly converting raw + // bytes to an integer range without biases is fairly hard and it seems + // like we're more likely to get that wrong than suffer a PRNG prediction + // issue by falling back to "mt_rand()". + + if (($max - $min) > mt_getrandmax()) { + throw new Exception( + pht('mt_rand() range is smaller than the requested range.')); + } + + $result = mt_rand($min, $max); + if (!is_int($result)) { + throw new Exception(pht('Bad return value from mt_rand().')); + } + + return $result; + } + + /** * Identify the MIME type of a file. This returns only the MIME type (like * text/plain), not the encoding (like charset=utf-8). * * @param string Path to the file to examine. * @param string Optional default mime type to return if the file's mime * type can not be identified. * @return string File mime type. * * @task file * * @phutil-external-symbol function mime_content_type * @phutil-external-symbol function finfo_open * @phutil-external-symbol function finfo_file */ public static function getMimeType( $path, $default = 'application/octet-stream') { $path = self::resolvePath($path); self::assertExists($path); self::assertIsFile($path); self::assertReadable($path); $mime_type = null; // Fileinfo is the best approach since it doesn't rely on `file`, but // it isn't builtin for older versions of PHP. if (function_exists('finfo_open')) { $finfo = finfo_open(FILEINFO_MIME); if ($finfo) { $result = finfo_file($finfo, $path); if ($result !== false) { $mime_type = $result; } } } // If we failed Fileinfo, try `file`. This works well but not all systems // have the binary. if ($mime_type === null) { list($err, $stdout) = exec_manual( 'file --brief --mime %s', $path); if (!$err) { $mime_type = trim($stdout); } } // If we didn't get anywhere, try the deprecated mime_content_type() // function. if ($mime_type === null) { if (function_exists('mime_content_type')) { $result = mime_content_type($path); if ($result !== false) { $mime_type = $result; } } } // If we come back with an encoding, strip it off. if (strpos($mime_type, ';') !== false) { list($type, $encoding) = explode(';', $mime_type, 2); $mime_type = $type; } if ($mime_type === null) { $mime_type = $default; } return $mime_type; } /* -( Directories )-------------------------------------------------------- */ /** * Create a directory in a manner similar to mkdir(), but throw detailed * exceptions on failure. * * @param string Path to directory. The parent directory must exist and * be writable. * @param int Permission umask. Note that umask is in octal, so you * should specify it as, e.g., `0777', not `777'. * @param boolean Recursively create directories. Default to false. * @return string Path to the created directory. * * @task directory */ public static function createDirectory( $path, $umask = 0755, $recursive = false) { $path = self::resolvePath($path); if (is_dir($path)) { if ($umask) { self::changePermissions($path, $umask); } return $path; } $dir = dirname($path); if ($recursive && !file_exists($dir)) { // Note: We could do this with the recursive third parameter of mkdir(), // but then we loose the helpful FilesystemExceptions we normally get. self::createDirectory($dir, $umask, true); } self::assertIsDirectory($dir); self::assertExists($dir); self::assertWritable($dir); self::assertNotExists($path); if (!mkdir($path, $umask)) { throw new FilesystemException( $path, pht("Failed to create directory '%s'.", $path)); } // Need to change permissions explicitly because mkdir does something // slightly different. mkdir(2) man page: // 'The parameter mode specifies the permissions to use. It is modified by // the process's umask in the usual way: the permissions of the created // directory are (mode & ~umask & 0777)."' if ($umask) { self::changePermissions($path, $umask); } return $path; } /** * Create a temporary directory and return the path to it. You are * responsible for removing it (e.g., with Filesystem::remove()) * when you are done with it. * * @param string Optional directory prefix. * @param int Permissions to create the directory with. By default, * these permissions are very restrictive (0700). * @param string Optional root directory. If not provided, the system * temporary directory (often "/tmp") will be used. * @return string Path to newly created temporary directory. * * @task directory */ public static function createTemporaryDirectory( $prefix = '', $umask = 0700, $root_directory = null) { $prefix = preg_replace('/[^A-Z0-9._-]+/i', '', $prefix); if ($root_directory !== null) { $tmp = $root_directory; self::assertExists($tmp); self::assertIsDirectory($tmp); self::assertWritable($tmp); } else { $tmp = sys_get_temp_dir(); if (!$tmp) { throw new FilesystemException( $tmp, pht('Unable to determine system temporary directory.')); } } $base = $tmp.DIRECTORY_SEPARATOR.$prefix; $tries = 3; do { $dir = $base.substr(base_convert(md5(mt_rand()), 16, 36), 0, 16); try { self::createDirectory($dir, $umask); break; } catch (FilesystemException $ex) { // Ignore. } } while (--$tries); if (!$tries) { $df = disk_free_space($tmp); if ($df !== false && $df < 1024 * 1024) { throw new FilesystemException( $dir, pht('Failed to create a temporary directory: the disk is full.')); } throw new FilesystemException( $dir, pht("Failed to create a temporary directory in '%s'.", $tmp)); } return $dir; } /** * List files in a directory. * * @param string Path, absolute or relative to PWD. * @param bool If false, exclude files beginning with a ".". * * @return array List of files and directories in the specified * directory, excluding `.' and `..'. * * @task directory */ public static function listDirectory($path, $include_hidden = true) { $path = self::resolvePath($path); self::assertExists($path); self::assertIsDirectory($path); self::assertReadable($path); $list = @scandir($path); if ($list === false) { throw new FilesystemException( $path, pht("Unable to list contents of directory '%s'.", $path)); } foreach ($list as $k => $v) { if ($v == '.' || $v == '..' || (!$include_hidden && $v[0] == '.')) { unset($list[$k]); } } return array_values($list); } /** * Return all directories between a path and the specified root directory * (defaulting to "/"). Iterating over them walks from the path to the root. * * @param string Path, absolute or relative to PWD. * @param string The root directory. * @return list<string> List of parent paths, including the provided path. * @task directory */ public static function walkToRoot($path, $root = null) { $path = self::resolvePath($path); if (is_link($path)) { $path = realpath($path); } // NOTE: On Windows, paths start like "C:\", so "/" does not contain // every other path. We could possibly special case "/" to have the same // meaning on Windows that it does on Linux, but just special case the // common case for now. See PHI817. if ($root !== null) { $root = self::resolvePath($root); if (is_link($root)) { $root = realpath($root); } // NOTE: We don't use `isDescendant()` here because we don't want to // reject paths which don't exist on disk. $root_list = new FileList(array($root)); if (!$root_list->contains($path)) { return array(); } } else { if (phutil_is_windows()) { $root = null; } else { $root = '/'; } } $walk = array(); $parts = explode(DIRECTORY_SEPARATOR, $path); foreach ($parts as $k => $part) { if (!strlen($part)) { unset($parts[$k]); } } while (true) { if (phutil_is_windows()) { $next = implode(DIRECTORY_SEPARATOR, $parts); } else { $next = DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $parts); } $walk[] = $next; if ($next == $root) { break; } if (!$parts) { break; } array_pop($parts); } return $walk; } /* -( Paths )-------------------------------------------------------------- */ /** * Checks if a path is specified as an absolute path. * * @param string * @return bool */ public static function isAbsolutePath($path) { if (phutil_is_windows()) { return (bool)preg_match('/^[A-Za-z]+:/', $path); } else { return !strncmp($path, DIRECTORY_SEPARATOR, 1); } } /** * Canonicalize a path by resolving it relative to some directory (by * default PWD), following parent symlinks and removing artifacts. If the * path is itself a symlink it is left unresolved. * * @param string Path, absolute or relative to PWD. * @return string Canonical, absolute path. * * @task path */ public static function resolvePath($path, $relative_to = null) { $is_absolute = self::isAbsolutePath($path); if (!$is_absolute) { if (!$relative_to) { $relative_to = getcwd(); } $path = $relative_to.DIRECTORY_SEPARATOR.$path; } if (is_link($path)) { $parent_realpath = realpath(dirname($path)); if ($parent_realpath !== false) { return $parent_realpath.DIRECTORY_SEPARATOR.basename($path); } } $realpath = realpath($path); if ($realpath !== false) { return $realpath; } // This won't work if the file doesn't exist or is on an unreadable mount // or something crazy like that. Try to resolve a parent so we at least // cover the nonexistent file case. $parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR)); while (end($parts) !== false) { array_pop($parts); if (phutil_is_windows()) { $attempt = implode(DIRECTORY_SEPARATOR, $parts); } else { $attempt = DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $parts); } $realpath = realpath($attempt); if ($realpath !== false) { $path = $realpath.substr($path, strlen($attempt)); break; } } return $path; } /** * Test whether a path is descendant from some root path after resolving all * symlinks and removing artifacts. Both paths must exists for the relation * to obtain. A path is always a descendant of itself as long as it exists. * * @param string Child path, absolute or relative to PWD. * @param string Root path, absolute or relative to PWD. * @return bool True if resolved child path is in fact a descendant of * resolved root path and both exist. * @task path */ public static function isDescendant($path, $root) { try { self::assertExists($path); self::assertExists($root); } catch (FilesystemException $e) { return false; } $fs = new FileList(array($root)); return $fs->contains($path); } /** * Convert a canonical path to its most human-readable format. It is * guaranteed that you can use resolvePath() to restore a path to its * canonical format. * * @param string Path, absolute or relative to PWD. * @param string Optionally, working directory to make files readable * relative to. * @return string Human-readable path. * * @task path */ public static function readablePath($path, $pwd = null) { if ($pwd === null) { $pwd = getcwd(); } foreach (array($pwd, self::resolvePath($pwd)) as $parent) { $parent = rtrim($parent, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; $len = strlen($parent); if (!strncmp($parent, $path, $len)) { $path = substr($path, $len); return $path; } } return $path; } /** * Determine whether or not a path exists in the filesystem. This differs from * file_exists() in that it returns true for symlinks. This method does not * attempt to resolve paths before testing them. * * @param string Test for the existence of this path. * @return bool True if the path exists in the filesystem. * @task path */ public static function pathExists($path) { return file_exists($path) || is_link($path); } /** * Determine if an executable binary (like `git` or `svn`) exists within * the configured `$PATH`. * * @param string Binary name, like `'git'` or `'svn'`. * @return bool True if the binary exists and is executable. * @task exec */ public static function binaryExists($binary) { return self::resolveBinary($binary) !== null; } /** * Locates the full path that an executable binary (like `git` or `svn`) is at * the configured `$PATH`. * * @param string Binary name, like `'git'` or `'svn'`. * @return string The full binary path if it is present, or null. * @task exec */ public static function resolveBinary($binary) { if (phutil_is_windows()) { list($err, $stdout) = exec_manual('where %s', $binary); $stdout = phutil_split_lines($stdout); // If `where %s` could not find anything, check for relative binary if ($err) { $path = self::resolvePath($binary); if (self::pathExists($path)) { return $path; } return null; } $stdout = head($stdout); } else { list($err, $stdout) = exec_manual('which %s', $binary); } return $err === 0 ? trim($stdout) : null; } /** * Determine if two paths are equivalent by resolving symlinks. This is * different from resolving both paths and comparing them because * resolvePath() only resolves symlinks in parent directories, not the * path itself. * * @param string First path to test for equivalence. * @param string Second path to test for equivalence. * @return bool True if both paths are equivalent, i.e. reference the same * entity in the filesystem. * @task path */ public static function pathsAreEquivalent($u, $v) { $u = self::resolvePath($u); $v = self::resolvePath($v); $real_u = realpath($u); $real_v = realpath($v); if ($real_u) { $u = $real_u; } if ($real_v) { $v = $real_v; } return ($u == $v); } /* -( Assert )------------------------------------------------------------- */ /** * Assert that something (e.g., a file, directory, or symlink) exists at a * specified location. * * @param string Assert that this path exists. * @return void * * @task assert */ public static function assertExists($path) { - if (!self::pathExists($path)) { - throw new FilesystemException( - $path, - pht("File system entity '%s' does not exist.", $path)); + if (self::pathExists($path)) { + return; } + + // Before we claim that the path doesn't exist, try to find a parent we + // don't have "+x" on. If we find one, tailor the error message so we don't + // say "does not exist" in cases where the path does exist, we just don't + // have permission to test its existence. + foreach (self::walkToRoot($path) as $parent) { + if (!self::pathExists($parent)) { + continue; + } + + if (!is_dir($parent)) { + continue; + } + + if (phutil_is_windows()) { + // Do nothing. On Windows, there's no obvious equivalent to the + // check below because "is_executable(...)" always appears to return + // "false" for any directory. + } else if (!is_executable($parent)) { + // On Linux, note that we don't need read permission ("+r") on parent + // directories to determine that a path exists, only execute ("+x"). + throw new FilesystemException( + $path, + pht( + 'Filesystem path "%s" can not be accessed because a parent '. + 'directory ("%s") is not executable (the current process does '. + 'not have "+x" permission).', + $path, + $parent)); + } + } + + throw new FilesystemException( + $path, + pht( + 'Filesystem path "%s" does not exist.', + $path)); } /** * Assert that nothing exists at a specified location. * * @param string Assert that this path does not exist. * @return void * * @task assert */ public static function assertNotExists($path) { if (file_exists($path) || is_link($path)) { throw new FilesystemException( $path, pht("Path '%s' already exists!", $path)); } } /** * Assert that a path represents a file, strictly (i.e., not a directory). * * @param string Assert that this path is a file. * @return void * * @task assert */ public static function assertIsFile($path) { if (!is_file($path)) { throw new FilesystemException( $path, pht("Requested path '%s' is not a file.", $path)); } } /** * Assert that a path represents a directory, strictly (i.e., not a file). * * @param string Assert that this path is a directory. * @return void * * @task assert */ public static function assertIsDirectory($path) { if (!is_dir($path)) { throw new FilesystemException( $path, pht("Requested path '%s' is not a directory.", $path)); } } /** * Assert that a file or directory exists and is writable. * * @param string Assert that this path is writable. * @return void * * @task assert */ public static function assertWritable($path) { if (!is_writable($path)) { throw new FilesystemException( $path, pht("Requested path '%s' is not writable.", $path)); } } /** * Assert that a file or directory exists and is readable. * * @param string Assert that this path is readable. * @return void * * @task assert */ public static function assertReadable($path) { if (!is_readable($path)) { throw new FilesystemException( $path, pht("Path '%s' is not readable.", $path)); } } } diff --git a/src/filesystem/__tests__/FilesystemTestCase.php b/src/filesystem/__tests__/FilesystemTestCase.php index c6b136d..b04de45 100644 --- a/src/filesystem/__tests__/FilesystemTestCase.php +++ b/src/filesystem/__tests__/FilesystemTestCase.php @@ -1,178 +1,216 @@ <?php final class FilesystemTestCase extends PhutilTestCase { public function testBinaryExists() { // Test for the `which` binary on Linux, and the `where` binary on Windows, // because `which which` is cute. if (phutil_is_windows()) { $exists = 'where'; } else { $exists = 'which'; } $this->assertEqual( true, Filesystem::binaryExists($exists)); // We don't expect to find this binary on any system. $this->assertEqual( false, Filesystem::binaryExists('halting-problem-decider')); } public function testResolveBinary() { // Test to make sure resolveBinary() returns the full path to the `which` // and `where` binaries. if (phutil_is_windows()) { $binary = 'where'; } else { $binary = 'which'; } $path = Filesystem::resolveBinary($binary); $this->assertFalse(null === $path); $this->assertTrue(file_exists($path)); $this->assertFalse(is_dir($path)); $this->assertEqual(null, Filesystem::resolveBinary('halting-problem-decider')); } public function testWriteUniqueFile() { $tmp = new TempFile(); $dir = dirname($tmp); // Writing an empty file should work. $f = Filesystem::writeUniqueFile($dir, ''); $this->assertEqual('', Filesystem::readFile($f)); // File name should be unique. $g = Filesystem::writeUniqueFile($dir, 'quack'); $this->assertTrue($f != $g); } public function testReadRandomBytes() { $number_of_bytes = 1024; $data = Filesystem::readRandomBytes($number_of_bytes); $this->assertTrue(strlen($data) == $number_of_bytes); $data1 = Filesystem::readRandomBytes(128); $data2 = Filesystem::readRandomBytes(128); $this->assertFalse($data1 == $data2); $caught = null; try { Filesystem::readRandomBytes(0); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue($caught instanceof Exception); } public function testWalkToRoot() { $test_cases = array( array( dirname(__FILE__).'/data/include_dir.txt/subdir.txt/test', dirname(__FILE__), array( dirname(__FILE__).'/data/include_dir.txt/subdir.txt/test', dirname(__FILE__).'/data/include_dir.txt/subdir.txt', dirname(__FILE__).'/data/include_dir.txt', dirname(__FILE__).'/data', dirname(__FILE__), ), ), array( dirname(__FILE__).'/data/include_dir.txt/subdir.txt', dirname(__FILE__), array( dirname(__FILE__).'/data/include_dir.txt/subdir.txt', dirname(__FILE__).'/data/include_dir.txt', dirname(__FILE__).'/data', dirname(__FILE__), ), ), 'root and path are identical' => array( dirname(__FILE__), dirname(__FILE__), array( dirname(__FILE__), ), ), 'root is not an ancestor of path' => array( dirname(__FILE__), dirname(__FILE__).'/data/include_dir.txt/subdir.txt', array(), ), 'fictional paths work' => array( '/x/y/z', '/', array( '/x/y/z', '/x/y', '/x', '/', ), ), ); foreach ($test_cases as $test_case) { list($path, $root, $expected) = $test_case; $this->assertEqual( $expected, Filesystem::walkToRoot($path, $root)); } } public function testisDescendant() { $test_cases = array( array( __FILE__, dirname(__FILE__), true, ), array( dirname(__FILE__), dirname(dirname(__FILE__)), true, ), array( dirname(__FILE__), phutil_get_library_root_for_path(__FILE__), true, ), array( dirname(dirname(__FILE__)), dirname(__FILE__), false, ), array( dirname(__FILE__).'/quack', dirname(__FILE__), false, ), ); foreach ($test_cases as $test_case) { list($path, $root, $expected) = $test_case; $this->assertEqual( $expected, Filesystem::isDescendant($path, $root), sprintf( 'Filesystem::isDescendant(%s, %s)', phutil_var_export($path), phutil_var_export($root))); } } + public function testRandomIntegers() { + $valid_ranges = array( + array(5, 5), + array(-1, 1), + array(0, 10000), + array(0, 999999999), + array(-65535, 65536), + ); + + foreach ($valid_ranges as $case) { + list($min, $max) = $case; + + $result = Filesystem::readRandomInteger($min, $max); + + $this->assertTrue($min <= $result, pht('%d <= %d', $min, $result)); + $this->assertTrue($max >= $result, pht('%d >= %d', $max, $result)); + } + + $invalid_ranges = array( + array('1', '2'), + array(1.0, 2.0), + array(5, 3), + ); + + foreach ($invalid_ranges as $case) { + list($min, $max) = $case; + + $caught = null; + try { + Filesystem::readRandomInteger($min, $max); + } catch (Exception $ex) { + $caught = $ex; + } + + $this->assertTrue($caught instanceof Exception); + } + } + } diff --git a/src/future/aws/PhutilAWSFuture.php b/src/future/aws/PhutilAWSFuture.php index 176a8e7..16fd363 100644 --- a/src/future/aws/PhutilAWSFuture.php +++ b/src/future/aws/PhutilAWSFuture.php @@ -1,171 +1,170 @@ <?php abstract class PhutilAWSFuture extends FutureProxy { private $future; private $accessKey; private $secretKey; private $region; private $httpMethod = 'GET'; private $path = '/'; private $endpoint; private $data = ''; private $headers = array(); abstract public function getServiceName(); public function __construct() { parent::__construct(null); } public function setAccessKey($access_key) { $this->accessKey = $access_key; return $this; } public function getAccessKey() { return $this->accessKey; } public function setSecretKey(PhutilOpaqueEnvelope $secret_key) { $this->secretKey = $secret_key; return $this; } public function getSecretKey() { return $this->secretKey; } public function getRegion() { return $this->region; } public function setRegion($region) { $this->region = $region; return $this; } public function setEndpoint($endpoint) { $this->endpoint = $endpoint; return $this; } public function getEndpoint() { return $this->endpoint; } public function setHTTPMethod($method) { $this->httpMethod = $method; return $this; } public function getHTTPMethod() { return $this->httpMethod; } public function setPath($path) { $this->path = $path; return $this; } public function getPath() { return $this->path; } public function setData($data) { $this->data = $data; return $this; } public function getData() { return $this->data; } protected function getParameters() { return array(); } public function addHeader($key, $value) { $this->headers[] = array($key, $value); return $this; } protected function getProxiedFuture() { if (!$this->future) { $params = $this->getParameters(); $method = $this->getHTTPMethod(); $host = $this->getEndpoint(); $path = $this->getPath(); $data = $this->getData(); - $uri = id(new PhutilURI("https://{$host}/")) - ->setPath($path) - ->setQueryParams($params); + $uri = id(new PhutilURI("https://{$host}/", $params)) + ->setPath($path); $future = id(new HTTPSFuture($uri, $data)) ->setMethod($method); foreach ($this->headers as $header) { list($key, $value) = $header; $future->addHeader($key, $value); } $this->signRequest($future); $this->future = $future; } return $this->future; } protected function signRequest(HTTPSFuture $future) { $access_key = $this->getAccessKey(); $secret_key = $this->getSecretKey(); $region = $this->getRegion(); id(new PhutilAWSv4Signature()) ->setRegion($region) ->setService($this->getServiceName()) ->setAccessKey($access_key) ->setSecretKey($secret_key) ->setSignContent($this->shouldSignContent()) ->signRequest($future); } protected function shouldSignContent() { return false; } protected function didReceiveResult($result) { list($status, $body, $headers) = $result; try { $xml = @(new SimpleXMLElement($body)); } catch (Exception $ex) { $xml = null; } if ($status->isError() || !$xml) { if (!($status instanceof HTTPFutureHTTPResponseStatus)) { throw $status; } $params = array( 'body' => $body, ); if ($xml) { $params['RequestID'] = $xml->RequestID[0]; $errors = array($xml->Error); foreach ($errors as $error) { $params['Errors'][] = array($error->Code, $error->Message); } } throw new PhutilAWSException($status->getStatusCode(), $params); } return $xml; } } diff --git a/src/future/aws/PhutilAWSv4Signature.php b/src/future/aws/PhutilAWSv4Signature.php index 343b581..86c322b 100644 --- a/src/future/aws/PhutilAWSv4Signature.php +++ b/src/future/aws/PhutilAWSv4Signature.php @@ -1,269 +1,265 @@ <?php final class PhutilAWSv4Signature extends Phobject { private $accessKey; private $secretKey; private $signingKey; private $signContent; private $date; private $region; private $service; public function setAccessKey($access_key) { $this->accessKey = $access_key; return $this; } public function setSecretKey(PhutilOpaqueEnvelope $secret_key) { $this->secretKey = $secret_key; return $this; } public function setDate($date) { $this->date = $date; return $this; } public function getDate() { if ($this->date === null) { $this->date = gmdate('Ymd\THis\Z', time()); } return $this->date; } public function setRegion($region) { $this->region = $region; return $this; } public function getRegion() { return $this->region; } public function setService($service) { $this->service = $service; return $this; } public function getService() { return $this->service; } public function setSigningKey($signing_key) { $this->signingKey = $signing_key; return $this; } public function getSigningKey() { if ($this->signingKey === null) { $this->signingKey = $this->computeSigningKey(); } return $this->signingKey; } private function getAlgorithm() { return 'AWS4-HMAC-SHA256'; } public function setSignContent($sign_content) { $this->signContent = $sign_content; return $this; } public function getSignContent() { return $this->signContent; } private function getHost(HTTPSFuture $future) { $uri = new PhutilURI($future->getURI()); return $uri->getDomain(); } private function getPath(HTTPSFuture $future) { $uri = new PhutilURI($future->getURI()); return $uri->getPath(); } public function signRequest(HTTPSFuture $future) { $body_signature = $this->getBodySignature($future); if ($this->getSignContent()) { $future->addHeader('X-Amz-Content-sha256', $body_signature); } $future->addHeader('X-Amz-Date', $this->getDate()); $request_signature = $this->getCanonicalRequestSignature( $future, $body_signature); $string_to_sign = $this->getStringToSign($request_signature); $signing_key = $this->getSigningKey(); $signature = hash_hmac('sha256', $string_to_sign, $signing_key); $algorithm = $this->getAlgorithm(); $credential = $this->getCredential(); $signed_headers = $this->getSignedHeaderList($future); $authorization = $algorithm.' '. 'Credential='.$credential.','. 'SignedHeaders='.$signed_headers.','. 'Signature='.$signature; $future->addHeader('Authorization', $authorization); return $future; } private function getBodySignature(HTTPSFuture $future) { $http_body = $future->getData(); if (is_array($http_body)) { $http_body = ''; } return hash('sha256', $http_body); } private function getCanonicalRequestSignature( HTTPSFuture $future, $body_signature) { $http_method = $future->getMethod(); $path = $this->getPath($future); $path = rawurlencode($path); $path = str_replace('%2F', '/', $path); $canonical_parameters = $this->getCanonicalParameterList($future); $canonical_headers = $this->getCanonicalHeaderList($future); $signed_headers = $this->getSignedHeaderList($future); $canonical_request = $http_method."\n". $path."\n". $canonical_parameters."\n". $canonical_headers."\n". "\n". $signed_headers."\n". $body_signature; return hash('sha256', $canonical_request); } private function getStringToSign($request_signature) { $algorithm = $this->getAlgorithm(); $date = $this->getDate(); $scope_parts = $this->getScopeParts(); $scope = implode('/', $scope_parts); $string_to_sign = $algorithm."\n". $date."\n". $scope."\n". $request_signature; return $string_to_sign; } private function getScopeParts() { return array( substr($this->getDate(), 0, 8), $this->getRegion(), $this->getService(), 'aws4_request', ); } private function computeSigningKey() { $secret_key = $this->secretKey; if (!$secret_key) { throw new Exception( pht( 'You must either provide a signing key with setSigningKey(), or '. 'provide a secret key with setSecretKey().')); } // NOTE: This part of the algorithm uses the raw binary hashes, and the // result is not human-readable. $raw_hash = true; $signing_key = 'AWS4'.$secret_key->openEnvelope(); $scope_parts = $this->getScopeParts(); foreach ($scope_parts as $scope_part) { $signing_key = hash_hmac('sha256', $scope_part, $signing_key, $raw_hash); } return $signing_key; } private function getCanonicalHeaderList(HTTPSFuture $future) { $headers = $this->getCanonicalHeaderMap($future); $canonical_headers = array(); foreach ($headers as $header => $header_value) { $canonical_headers[] = $header.':'.trim($header_value); } return implode("\n", $canonical_headers); } private function getCanonicalHeaderMap(HTTPSFuture $future) { $headers = $future->getHeaders(); $headers[] = array( 'Host', $this->getHost($future), ); $header_map = array(); foreach ($headers as $header) { list($key, $value) = $header; $key = phutil_utf8_strtolower($key); $header_map[$key] = $value; } ksort($header_map); return $header_map; } private function getSignedHeaderList(HTTPSFuture $future) { $headers = $this->getCanonicalHeaderMap($future); return implode(';', array_keys($headers)); } private function getCanonicalParameterList(HTTPSFuture $future) { $uri = new PhutilURI($future->getURI()); - $params = $uri->getQueryParams(); + $params = $uri->getQueryParamsAsMap(); ksort($params); - $canonical_parameters = array(); - foreach ($params as $key => $value) { - $canonical_parameters[] = rawurlencode($key).'='.rawurlencode($value); - } - $canonical_parameters = implode('&', $canonical_parameters); + $canonical_parameters = phutil_build_http_querystring($params); return $canonical_parameters; } private function getCredential() { $access_key = $this->accessKey; if (!strlen($access_key)) { throw new PhutilInvalidStateException('setAccessKey'); } $parts = $this->getScopeParts(); array_unshift($parts, $access_key); return implode('/', $parts); } } diff --git a/src/future/exec/PhutilExecutableFuture.php b/src/future/exec/PhutilExecutableFuture.php index a053c3d..5381982 100644 --- a/src/future/exec/PhutilExecutableFuture.php +++ b/src/future/exec/PhutilExecutableFuture.php @@ -1,155 +1,193 @@ <?php /** * @task config Configuring the Command */ abstract class PhutilExecutableFuture extends Future { private $env; private $cwd; /** * Set environmental variables for the command. * * By default, variables are added to the environment of this process. You * can optionally wipe the environment and pass only the specified values. * * // Env will have "X" and current env ("PATH", etc.) * $exec->setEnv(array('X' => 'y')); * * // Env will have ONLY "X". * $exec->setEnv(array('X' => 'y'), $wipe_process_env = true); * * @param map<string, string> Dictionary of environmental variables. * @param bool Optionally, pass `true` to replace the existing environment. * @return this * * @task config */ final public function setEnv(array $env, $wipe_process_env = false) { // Force values to strings here. The underlying PHP commands get upset if // they are handed non-string values as environmental variables. foreach ($env as $key => $value) { $env[$key] = (string)$value; } if (!$wipe_process_env) { $env = $env + $this->getEnv(); } $this->env = $env; return $this; } /** * Set the value of a specific environmental variable for this command. * * @param string Environmental variable name. * @param string|null New value, or null to remove this variable. * @return this * @task config */ final public function updateEnv($key, $value) { $env = $this->getEnv(); if ($value === null) { unset($env[$key]); } else { $env[$key] = (string)$value; } $this->env = $env; return $this; } /** * Returns `true` if this command has a configured environment. * * @return bool True if this command has an environment. * @task config */ final public function hasEnv() { return ($this->env !== null); } /** * Get the configured environment. * * @return map<string, string> Effective environment for this command. * @task config */ final public function getEnv() { if (!$this->hasEnv()) { $default_env = $_ENV; // If `variables_order` does not include "E", the $_ENV superglobal // does not build and there's no apparent reasonable way for us to // rebuild it (we could perhaps parse the output of `export`). // For now, explicitly populate variables which we rely on and which // we know may exist. After T12071, we should be able to rely on // $_ENV and no longer need to do this. $known_keys = array( 'PHABRICATOR_ENV', 'PHABRICATOR_INSTANCE', ); foreach ($known_keys as $known_key) { $value = getenv($known_key); if (strlen($value)) { $default_env[$known_key] = $value; } } $this->setEnv($default_env, $wipe_process_env = true); } return $this->env; } /** * Set the current working directory for the subprocess (that is, set where * the subprocess will execute). If not set, the default value is the parent's * current working directory. * * @param string Directory to execute the subprocess in. * @return this * @task config */ final public function setCWD($cwd) { - $cwd = (string)$cwd; + $cwd = phutil_string_cast($cwd); + + try { + Filesystem::assertExists($cwd); + } catch (FilesystemException $ex) { + throw new PhutilProxyException( + pht( + 'Unable to run a command in directory "%s".', + $cwd), + $ex); + } if (!is_dir($cwd)) { throw new Exception( pht( - 'Preparing to run a command in directory "%s", but that '. - 'directory does not exist.', + 'Preparing to run a command in directory "%s", but that path is '. + 'not a directory.', + $cwd)); + } + + // Although you don't technically need read permission to "chdir()" into + // a directory, it is almost certainly a mistake to execute a subprocess + // in a CWD we can't read. Refuse to do this. If callers have some + // exceptionally clever scheme up their sleeves they can always have the + // subprocess "cd" or "chdir()" explicitly. + + if (!is_readable($cwd)) { + throw new Exception( + pht( + 'Preparing to run a command in directory "%s", but that directory '. + 'is not readable (the current process does not have "+r" '. + 'permission).', + $cwd)); + } + + + if (phutil_is_windows()) { + // Do nothing. On Windows, calling "is_executable(...)" on a directory + // always appears to return "false". Skip this check under Windows. + } else if (!is_executable($cwd)) { + throw new Exception( + pht( + 'Preparing to run a command in directory "%s", but that directory '. + 'is not executable (the current process does not have "+x" '. + 'permission).', $cwd)); } $this->cwd = $cwd; return $this; } /** * Get the command's current working directory. * * @return string Working directory. * @task config */ final public function getCWD() { return $this->cwd; } } diff --git a/src/future/http/HTTPFuture.php b/src/future/http/HTTPFuture.php index 25ac8b4..bfe5466 100644 --- a/src/future/http/HTTPFuture.php +++ b/src/future/http/HTTPFuture.php @@ -1,302 +1,302 @@ <?php /** * Socket-based HTTP future, for making HTTP requests using future semantics. * This is an alternative to @{class:CURLFuture} which has better resolution * behavior (select()-based wait instead of busy wait) but fewer features. You * should prefer this class to @{class:CURLFuture} unless you need its advanced * features (like HTTP/1.1, chunked transfer encoding, gzip, etc.). * * Example Usage * * $future = new HTTPFuture('http://www.example.com/'); * list($response_body, $headers) = $future->resolvex(); * * Or * * $future = new HTTPFuture('http://www.example.com/'); * list($http_response_status_object, * $response_body, * $headers) = $future->resolve(); * * Prefer @{method:resolvex} to @{method:resolve} as the former throws * @{class:HTTPFutureHTTPResponseStatus} on failures, which includes an * informative exception message. */ final class HTTPFuture extends BaseHTTPFuture { private $host; private $port = 80; private $fullRequestPath; private $socket; private $writeBuffer; private $response; private $stateConnected = false; private $stateWriteComplete = false; private $stateReady = false; private $stateStartTime; private $profilerCallID; public function setURI($uri) { $parts = parse_url($uri); if (!$parts) { throw new Exception(pht("Could not parse URI '%s'.", $uri)); } if (empty($parts['scheme']) || $parts['scheme'] !== 'http') { throw new Exception( pht( "URI '%s' must be fully qualified with '%s' scheme.", $uri, 'http://')); } if (!isset($parts['host'])) { throw new Exception( pht("URI '%s' must be fully qualified and include host name.", $uri)); } $this->host = $parts['host']; if (!empty($parts['port'])) { $this->port = $parts['port']; } if (isset($parts['user']) || isset($parts['pass'])) { throw new Exception( pht('HTTP Basic Auth is not supported by %s.', __CLASS__)); } if (isset($parts['path'])) { $this->fullRequestPath = $parts['path']; } else { $this->fullRequestPath = '/'; } if (isset($parts['query'])) { $this->fullRequestPath .= '?'.$parts['query']; } return parent::setURI($uri); } public function __destruct() { if ($this->socket) { @fclose($this->socket); $this->socket = null; } } public function getReadSockets() { if ($this->socket) { return array($this->socket); } return array(); } public function getWriteSockets() { if (strlen($this->writeBuffer)) { return array($this->socket); } return array(); } public function isWriteComplete() { return $this->stateWriteComplete; } private function getDefaultUserAgent() { return __CLASS__.'/1.0'; } public function isReady() { if ($this->stateReady) { return true; } if (!$this->socket) { $this->stateStartTime = microtime(true); $this->socket = $this->buildSocket(); if (!$this->socket) { return $this->stateReady; } $profiler = PhutilServiceProfiler::getInstance(); $this->profilerCallID = $profiler->beginServiceCall( array( 'type' => 'http', 'uri' => $this->getURI(), )); } if (!$this->stateConnected) { $read = array(); $write = array($this->socket); $except = array(); $select = stream_select($read, $write, $except, $tv_sec = 0); if ($write) { $this->stateConnected = true; } } if ($this->stateConnected) { if (strlen($this->writeBuffer)) { $bytes = @fwrite($this->socket, $this->writeBuffer); if ($bytes === false) { throw new Exception(pht('Failed to write to buffer.')); } else if ($bytes) { $this->writeBuffer = substr($this->writeBuffer, $bytes); } } if (!strlen($this->writeBuffer)) { $this->stateWriteComplete = true; } while (($data = fread($this->socket, 32768)) || strlen($data)) { $this->response .= $data; } if ($data === false) { throw new Exception(pht('Failed to read socket.')); } } return $this->checkSocket(); } private function buildSocket() { $errno = null; $errstr = null; $socket = @stream_socket_client( 'tcp://'.$this->host.':'.$this->port, $errno, $errstr, $ignored_connection_timeout = 1.0, STREAM_CLIENT_CONNECT | STREAM_CLIENT_ASYNC_CONNECT); if (!$socket) { $this->stateReady = true; $this->result = $this->buildErrorResult( HTTPFutureTransportResponseStatus::ERROR_CONNECTION_FAILED); return null; } $ok = stream_set_blocking($socket, 0); if (!$ok) { throw new Exception(pht('Failed to set stream nonblocking.')); } $this->writeBuffer = $this->buildHTTPRequest(); return $socket; } private function checkSocket() { $timeout = false; $now = microtime(true); if (($now - $this->stateStartTime) > $this->getTimeout()) { $timeout = true; } if (!feof($this->socket) && !$timeout) { return false; } $this->stateReady = true; if ($timeout) { $this->result = $this->buildErrorResult( HTTPFutureTransportResponseStatus::ERROR_TIMEOUT); } else if (!$this->stateConnected) { $this->result = $this->buildErrorResult( HTTPFutureTransportResponseStatus::ERROR_CONNECTION_REFUSED); } else if (!$this->stateWriteComplete) { $this->result = $this->buildErrorResult( HTTPFutureTransportResponseStatus::ERROR_CONNECTION_FAILED); } else { $this->result = $this->parseRawHTTPResponse($this->response); } $profiler = PhutilServiceProfiler::getInstance(); $profiler->endServiceCall($this->profilerCallID, array()); return true; } private function buildErrorResult($error) { return array( $status = new HTTPFutureTransportResponseStatus($error, $this->getURI()), $body = null, $headers = array(), ); } private function buildHTTPRequest() { $data = $this->getData(); $method = $this->getMethod(); $uri = $this->fullRequestPath; $add_headers = array(); if ($this->getMethod() == 'GET') { if (is_array($data)) { - $data = http_build_query($data, '', '&'); + $data = phutil_build_http_querystring($data); if (strpos($uri, '?') !== false) { $uri .= '&'.$data; } else { $uri .= '?'.$data; } $data = ''; } } else { if (is_array($data)) { - $data = http_build_query($data, '', '&')."\r\n"; + $data = phutil_build_http_querystring($data)."\r\n"; $add_headers[] = array( 'Content-Type', 'application/x-www-form-urlencoded', ); } } $length = strlen($data); $add_headers[] = array( 'Content-Length', $length, ); if (!$this->getHeaders('User-Agent')) { $add_headers[] = array( 'User-Agent', $this->getDefaultUserAgent(), ); } if (!$this->getHeaders('Host')) { $add_headers[] = array( 'Host', $this->host, ); } $headers = array_merge($this->getHeaders(), $add_headers); foreach ($headers as $key => $header) { list($name, $value) = $header; if (strlen($value)) { $value = ': '.$value; } $headers[$key] = $name.$value."\r\n"; } return "{$method} {$uri} HTTP/1.0\r\n". implode('', $headers). "\r\n". $data; } } diff --git a/src/future/http/HTTPSFuture.php b/src/future/http/HTTPSFuture.php index 255e7f6..0064a8f 100644 --- a/src/future/http/HTTPSFuture.php +++ b/src/future/http/HTTPSFuture.php @@ -1,689 +1,689 @@ <?php /** * Very basic HTTPS future. */ final class HTTPSFuture extends BaseHTTPFuture { private static $multi; private static $results = array(); private static $pool = array(); private static $globalCABundle; private $handle; private $profilerCallID; private $cabundle; private $followLocation = true; private $responseBuffer = ''; private $responseBufferPos; private $files = array(); private $temporaryFiles = array(); private $rawBody; private $rawBodyPos = 0; private $fileHandle; /** * Create a temp file containing an SSL cert, and use it for this session. * * This allows us to do host-specific SSL certificates in whatever client * is using libphutil. e.g. in Arcanist, you could add an "ssl_cert" key * to a specific host in ~/.arcrc and use that. * * cURL needs this to be a file, it doesn't seem to be able to handle a string * which contains the cert. So we make a temporary file and store it there. * * @param string The multi-line, possibly lengthy, SSL certificate to use. * @return this */ public function setCABundleFromString($certificate) { $temp = new TempFile(); Filesystem::writeFile($temp, $certificate); $this->cabundle = $temp; return $this; } /** * Set the SSL certificate to use for this session, given a path. * * @param string The path to a valid SSL certificate for this session * @return this */ public function setCABundleFromPath($path) { $this->cabundle = $path; return $this; } /** * Get the path to the SSL certificate for this session. * * @return string|null */ public function getCABundle() { return $this->cabundle; } /** * Set whether Location headers in the response will be respected. * The default is true. * * @param boolean true to follow any Location header present in the response, * false to return the request directly * @return this */ public function setFollowLocation($follow) { $this->followLocation = $follow; return $this; } /** * Get whether Location headers in the response will be respected. * * @return boolean */ public function getFollowLocation() { return $this->followLocation; } /** * Set the fallback CA certificate if one is not specified * for the session, given a path. * * @param string The path to a valid SSL certificate * @return void */ public static function setGlobalCABundleFromPath($path) { self::$globalCABundle = $path; } /** * Set the fallback CA certificate if one is not specified * for the session, given a string. * * @param string The certificate * @return void */ public static function setGlobalCABundleFromString($certificate) { $temp = new TempFile(); Filesystem::writeFile($temp, $certificate); self::$globalCABundle = $temp; } /** * Get the fallback global CA certificate * * @return string */ public static function getGlobalCABundle() { return self::$globalCABundle; } /** * Load contents of remote URI. Behaves pretty much like * `@file_get_contents($uri)` but doesn't require `allow_url_fopen`. * * @param string * @param float * @return string|false */ public static function loadContent($uri, $timeout = null) { $future = new HTTPSFuture($uri); if ($timeout !== null) { $future->setTimeout($timeout); } try { list($body) = $future->resolvex(); return $body; } catch (HTTPFutureResponseStatus $ex) { return false; } } /** * Attach a file to the request. * * @param string HTTP parameter name. * @param string File content. * @param string File name. * @param string File mime type. * @return this */ public function attachFileData($key, $data, $name, $mime_type) { if (isset($this->files[$key])) { throw new Exception( pht( '%s currently supports only one file attachment for each '. 'parameter name. You are trying to attach two different files with '. 'the same parameter, "%s".', __CLASS__, $key)); } $this->files[$key] = array( 'data' => $data, 'name' => $name, 'mime' => $mime_type, ); return $this; } public function isReady() { if (isset($this->result)) { return true; } $uri = $this->getURI(); $domain = id(new PhutilURI($uri))->getDomain(); if (!$this->handle) { $uri_object = new PhutilURI($uri); $proxy = PhutilHTTPEngineExtension::buildHTTPProxyURI($uri_object); $profiler = PhutilServiceProfiler::getInstance(); $this->profilerCallID = $profiler->beginServiceCall( array( 'type' => 'http', 'uri' => $uri, 'proxy' => (string)$proxy, )); if (!self::$multi) { self::$multi = curl_multi_init(); if (!self::$multi) { throw new Exception(pht('%s failed!', 'curl_multi_init()')); } } if (!empty(self::$pool[$domain])) { $curl = array_pop(self::$pool[$domain]); } else { $curl = curl_init(); if (!$curl) { throw new Exception(pht('%s failed!', 'curl_init()')); } } $this->handle = $curl; curl_multi_add_handle(self::$multi, $curl); curl_setopt($curl, CURLOPT_URL, $uri); if (defined('CURLOPT_PROTOCOLS')) { // cURL supports a lot of protocols, and by default it will honor // redirects across protocols (for instance, from HTTP to POP3). Beyond // being very silly, this also has security implications: // // http://blog.volema.com/curl-rce.html // // Disable all protocols other than HTTP and HTTPS. $allowed_protocols = CURLPROTO_HTTPS | CURLPROTO_HTTP; curl_setopt($curl, CURLOPT_PROTOCOLS, $allowed_protocols); curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, $allowed_protocols); } if (strlen($this->rawBody)) { if ($this->getData()) { throw new Exception( pht( 'You can not execute an HTTP future with both a raw request '. 'body and structured request data.')); } // We aren't actually going to use this file handle, since we are // just pushing data through the callback, but cURL gets upset if // we don't hand it a real file handle. $tmp = new TempFile(); $this->fileHandle = fopen($tmp, 'r'); // NOTE: We must set CURLOPT_PUT here to make cURL use CURLOPT_INFILE. // We'll possibly overwrite the method later on, unless this is really // a PUT request. curl_setopt($curl, CURLOPT_PUT, true); curl_setopt($curl, CURLOPT_INFILE, $this->fileHandle); curl_setopt($curl, CURLOPT_INFILESIZE, strlen($this->rawBody)); curl_setopt($curl, CURLOPT_READFUNCTION, array($this, 'willWriteBody')); } else { $data = $this->formatRequestDataForCURL(); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } $headers = $this->getHeaders(); $saw_expect = false; for ($ii = 0; $ii < count($headers); $ii++) { list($name, $value) = $headers[$ii]; $headers[$ii] = $name.': '.$value; if (!strncasecmp($name, 'Expect', strlen('Expect'))) { $saw_expect = true; } } if (!$saw_expect) { // cURL sends an "Expect" header by default for certain requests. While // there is some reasoning behind this, it causes a practical problem // in that lighttpd servers reject these requests with a 417. Both sides // are locked in an eternal struggle (lighttpd has introduced a // 'server.reject-expect-100-with-417' option to deal with this case). // // The ostensibly correct way to suppress this behavior on the cURL side // is to add an empty "Expect:" header. If we haven't seen some other // explicit "Expect:" header, do so. // // See here, for example, although this issue is fairly widespread: // http://curl.haxx.se/mail/archive-2009-07/0008.html $headers[] = 'Expect:'; } curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // Set the requested HTTP method, e.g. GET / POST / PUT. curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $this->getMethod()); // Make sure we get the headers and data back. curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_WRITEFUNCTION, array($this, 'didReceiveDataCallback')); if ($this->followLocation) { curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_MAXREDIRS, 20); } if (defined('CURLOPT_TIMEOUT_MS')) { // If CURLOPT_TIMEOUT_MS is available, use the higher-precision timeout. $timeout = max(1, ceil(1000 * $this->getTimeout())); curl_setopt($curl, CURLOPT_TIMEOUT_MS, $timeout); } else { // Otherwise, fall back to the lower-precision timeout. $timeout = max(1, ceil($this->getTimeout())); curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); } // We're going to try to set CAINFO below. This doesn't work at all on // OSX around Yosemite (see T5913). On these systems, we'll use the // system CA and then try to tell the user that their settings were // ignored and how to fix things if we encounter a CA-related error. // Assume we have custom CA settings to start with; we'll clear this // flag if we read the default CA info below. // Try some decent fallbacks here: // - First, check if a bundle is set explicitly for this request, via // `setCABundle()` or similar. // - Then, check if a global bundle is set explicitly for all requests, // via `setGlobalCABundle()` or similar. // - Then, if a local custom.pem exists, use that, because it probably // means that the user wants to override everything (also because the // user might not have access to change the box's php.ini to add // curl.cainfo). // - Otherwise, try using curl.cainfo. If it's set explicitly, it's // probably reasonable to try using it before we fall back to what // libphutil ships with. // - Lastly, try the default that libphutil ships with. If it doesn't // work, give up and yell at the user. if (!$this->getCABundle()) { $caroot = dirname(phutil_get_library_root('phutil')).'/resources/ssl/'; $ini_val = ini_get('curl.cainfo'); if (self::getGlobalCABundle()) { $this->setCABundleFromPath(self::getGlobalCABundle()); } else if (Filesystem::pathExists($caroot.'custom.pem')) { $this->setCABundleFromPath($caroot.'custom.pem'); } else if ($ini_val) { // TODO: We can probably do a pathExists() here, even. $this->setCABundleFromPath($ini_val); } else { $this->setCABundleFromPath($caroot.'default.pem'); } } if ($this->canSetCAInfo()) { curl_setopt($curl, CURLOPT_CAINFO, $this->getCABundle()); } $verify_peer = 1; $verify_host = 2; $extensions = PhutilHTTPEngineExtension::getAllExtensions(); foreach ($extensions as $extension) { if ($extension->shouldTrustAnySSLAuthorityForURI($uri_object)) { $verify_peer = 0; } if ($extension->shouldTrustAnySSLHostnameForURI($uri_object)) { $verify_host = 0; } } curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $verify_peer); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $verify_host); curl_setopt($curl, CURLOPT_SSLVERSION, 0); if ($proxy) { curl_setopt($curl, CURLOPT_PROXY, (string)$proxy); } } else { $curl = $this->handle; if (!self::$results) { // NOTE: In curl_multi_select(), PHP calls curl_multi_fdset() but does // not check the return value of &maxfd for -1 until recent versions // of PHP (5.4.8 and newer). cURL may return -1 as maxfd in some unusual // situations; if it does, PHP enters select() with nfds=0, which blocks // until the timeout is reached. // // We could try to guess whether this will happen or not by examining // the version identifier, but we can also just sleep for only a short // period of time. curl_multi_select(self::$multi, 0.01); } } do { $active = null; $result = curl_multi_exec(self::$multi, $active); } while ($result == CURLM_CALL_MULTI_PERFORM); while ($info = curl_multi_info_read(self::$multi)) { if ($info['msg'] == CURLMSG_DONE) { self::$results[(int)$info['handle']] = $info; } } if (!array_key_exists((int)$curl, self::$results)) { return false; } // The request is complete, so release any temporary files we wrote // earlier. $this->temporaryFiles = array(); $info = self::$results[(int)$curl]; $result = $this->responseBuffer; $err_code = $info['result']; if ($err_code) { if (($err_code == CURLE_SSL_CACERT) && !$this->canSetCAInfo()) { $status = new HTTPFutureCertificateResponseStatus( HTTPFutureCertificateResponseStatus::ERROR_IMMUTABLE_CERTIFICATES, $uri); } else { $status = new HTTPFutureCURLResponseStatus($err_code, $uri); } $body = null; $headers = array(); $this->result = array($status, $body, $headers); } else { // cURL returns headers of all redirects, we strip all but the final one. $redirects = curl_getinfo($curl, CURLINFO_REDIRECT_COUNT); $result = preg_replace('/^(.*\r\n\r\n){'.$redirects.'}/sU', '', $result); $this->result = $this->parseRawHTTPResponse($result); } curl_multi_remove_handle(self::$multi, $curl); unset(self::$results[(int)$curl]); // NOTE: We want to use keepalive if possible. Return the handle to a // pool for the domain; don't close it. if ($this->shouldReuseHandles()) { self::$pool[$domain][] = $curl; } $profiler = PhutilServiceProfiler::getInstance(); $profiler->endServiceCall($this->profilerCallID, array()); return true; } /** * Callback invoked by cURL as it reads HTTP data from the response. We save * the data to a buffer. */ public function didReceiveDataCallback($handle, $data) { $this->responseBuffer .= $data; return strlen($data); } /** * Read data from the response buffer. * * NOTE: Like @{class:ExecFuture}, this method advances a read cursor but * does not discard the data. The data will still be buffered, and it will * all be returned when the future resolves. To discard the data after * reading it, call @{method:discardBuffers}. * * @return string Response data, if available. */ public function read() { $result = substr($this->responseBuffer, $this->responseBufferPos); $this->responseBufferPos = strlen($this->responseBuffer); return $result; } /** * Discard any buffered data. Normally, you call this after reading the * data with @{method:read}. * * @return this */ public function discardBuffers() { $this->responseBuffer = ''; $this->responseBufferPos = 0; return $this; } /** * Produces a value safe to pass to `CURLOPT_POSTFIELDS`. * * @return wild Some value, suitable for use in `CURLOPT_POSTFIELDS`. */ private function formatRequestDataForCURL() { // We're generating a value to hand to cURL as CURLOPT_POSTFIELDS. The way // cURL handles this value has some tricky caveats. // First, we can return either an array or a query string. If we return // an array, we get a "multipart/form-data" request. If we return a // query string, we get an "application/x-www-form-urlencoded" request. // Second, if we return an array we can't duplicate keys. The user might // want to send the same parameter multiple times. // Third, if we return an array and any of the values start with "@", // cURL includes arbitrary files off disk and sends them to an untrusted // remote server. For example, an array like: // // array('name' => '@/usr/local/secret') // // ...will attempt to read that file off disk and transmit its contents with // the request. This behavior is pretty surprising, and it can easily // become a relatively severe security vulnerability which allows an // attacker to read any file the HTTP process has access to. Since this // feature is very dangerous and not particularly useful, we prevent its // use. Broadly, this means we must reject some requests because they // contain an "@" in an inconvenient place. // Generally, to avoid the "@" case and because most servers usually // expect "application/x-www-form-urlencoded" data, we try to return a // string unless there are files attached to this request. $data = $this->getData(); $files = $this->files; $any_data = ($data || (is_string($data) && strlen($data))); $any_files = (bool)$this->files; if (!$any_data && !$any_files) { // No files or data, so just bail. return null; } if (!$any_files) { // If we don't have any files, just encode the data as a query string, // make sure it's not including any files, and we're good to go. if (is_array($data)) { - $data = http_build_query($data, '', '&'); + $data = phutil_build_http_querystring($data); } $this->checkForDangerousCURLMagic($data, $is_query_string = true); return $data; } // If we've made it this far, we have some files, so we need to return // an array. First, convert the other data into an array if it isn't one // already. if (is_string($data)) { // NOTE: We explicitly don't want fancy array parsing here, so just // do a basic parse and then convert it into a dictionary ourselves. $parser = new PhutilQueryStringParser(); $pairs = $parser->parseQueryStringToPairList($data); $map = array(); foreach ($pairs as $pair) { list($key, $value) = $pair; if (array_key_exists($key, $map)) { throw new Exception( pht( 'Request specifies two values for key "%s", but parameter '. 'names must be unique if you are posting file data due to '. 'limitations with cURL.', $key)); } $map[$key] = $value; } $data = $map; } foreach ($data as $key => $value) { $this->checkForDangerousCURLMagic($value, $is_query_string = false); } foreach ($this->files as $name => $info) { if (array_key_exists($name, $data)) { throw new Exception( pht( 'Request specifies a file with key "%s", but that key is also '. 'defined by normal request data. Due to limitations with cURL, '. 'requests that post file data must use unique keys.', $name)); } $tmp = new TempFile($info['name']); Filesystem::writeFile($tmp, $info['data']); $this->temporaryFiles[] = $tmp; // In 5.5.0 and later, we can use CURLFile. Prior to that, we have to // use this "@" stuff. if (class_exists('CURLFile', false)) { $file_value = new CURLFile((string)$tmp, $info['mime'], $info['name']); } else { $file_value = '@'.(string)$tmp; } $data[$name] = $file_value; } return $data; } /** * Detect strings which will cause cURL to do horrible, insecure things. * * @param string Possibly dangerous string. * @param bool True if this string is being used as part of a query string. * @return void */ private function checkForDangerousCURLMagic($string, $is_query_string) { if (empty($string[0]) || ($string[0] != '@')) { // This isn't an "@..." string, so it's fine. return; } if ($is_query_string) { if (version_compare(phpversion(), '5.2.0', '<')) { throw new Exception( pht( 'Attempting to make an HTTP request, but query string data begins '. 'with "%s". Prior to PHP 5.2.0 this reads files off disk, which '. 'creates a wide attack window for security vulnerabilities. '. 'Upgrade PHP or avoid making cURL requests which begin with "%s".', '@', '@')); } // This is safe if we're on PHP 5.2.0 or newer. return; } throw new Exception( pht( 'Attempting to make an HTTP request which includes file data, but the '. 'value of a query parameter begins with "%s". PHP interprets these '. 'values to mean that it should read arbitrary files off disk and '. 'transmit them to remote servers. Declining to make this request.', '@')); } /** * Determine whether CURLOPT_CAINFO is usable on this system. */ private function canSetCAInfo() { // We cannot set CAInfo on OSX after Yosemite. $osx_version = PhutilExecutionEnvironment::getOSXVersion(); if ($osx_version) { if (version_compare($osx_version, 14, '>=')) { return false; } } return true; } /** * Write a raw HTTP body into the request. * * You must write the entire body before starting the request. * * @param string Raw body. * @return this */ public function write($raw_body) { $this->rawBody = $raw_body; return $this; } /** * Callback to pass data to cURL. */ public function willWriteBody($handle, $infile, $len) { $bytes = substr($this->rawBody, $this->rawBodyPos, $len); $this->rawBodyPos += $len; return $bytes; } private function shouldReuseHandles() { $curl_version = curl_version(); $version = idx($curl_version, 'version'); // NOTE: cURL 7.43.0 has a bug where the POST body length is not recomputed // properly when a handle is reused. For this version of cURL, disable // handle reuse and accept a small performance penalty. See T8654. if ($version == '7.43.0') { return false; } return true; } } diff --git a/src/future/oauth/PhutilOAuth1Future.php b/src/future/oauth/PhutilOAuth1Future.php index 8e91f8f..1e63ae2 100644 --- a/src/future/oauth/PhutilOAuth1Future.php +++ b/src/future/oauth/PhutilOAuth1Future.php @@ -1,291 +1,291 @@ <?php /** * Proxy future that implements OAuth1 request signing. For references, see: * * RFC 5849: http://tools.ietf.org/html/rfc5849 * Guzzle: https://github.com/guzzle/guzzle/blob/master/src/Guzzle/Plugin/Oauth/OauthPlugin.php * */ final class PhutilOAuth1Future extends FutureProxy { private $uri; private $data; private $consumerKey; private $consumerSecret; private $signatureMethod; private $privateKey; private $method = 'POST'; private $token; private $tokenSecret; private $nonce; private $timestamp; private $hasConstructedFuture; private $callbackURI; private $headers = array(); public function setCallbackURI($callback_uri) { $this->callbackURI = $callback_uri; return $this; } public function setTimestamp($timestamp) { $this->timestamp = $timestamp; return $this; } public function setNonce($nonce) { $this->nonce = $nonce; return $this; } public function setTokenSecret($token_secret) { $this->tokenSecret = $token_secret; return $this; } public function setToken($token) { $this->token = $token; return $this; } public function setPrivateKey(PhutilOpaqueEnvelope $private_key) { $this->privateKey = $private_key; return $this; } public function setSignatureMethod($signature_method) { $this->signatureMethod = $signature_method; return $this; } public function setConsumerKey($consumer_key) { $this->consumerKey = $consumer_key; return $this; } public function setConsumerSecret(PhutilOpaqueEnvelope $consumer_secret) { $this->consumerSecret = $consumer_secret; return $this; } public function setMethod($method) { $this->method = $method; return $this; } public function __construct($uri, $data = array()) { $this->uri = new PhutilURI((string)$uri); $this->data = $data; $this->setProxiedFuture(new HTTPSFuture($uri, $data)); } public function getSignature() { $params = array(); // NOTE: The JIRA API uses JSON-encoded request bodies which are not // signed, and OAuth1 provides no real way to sign a nonparameterized // request body. Possibly we should split this apart into flags which // control which data is signed, but for now this rule seems to cover // all the use cases. if (is_array($this->data)) { $params = $this->data; } $params = $params - + $this->uri->getQueryParams() + + $this->uri->getQueryParamsAsMap() + $this->getOAuth1Headers(); return $this->sign($params); } public function addHeader($name, $value) { // If we haven't built the future yet, hold on to the header until after // we do, since there might be more changes coming which will affect the // signature process. if (!$this->hasConstructedFuture) { $this->headers[] = array($name, $value); } else { $this->getProxiedFuture()->addHeader($name, $value); } return $this; } protected function getProxiedFuture() { $future = parent::getProxiedFuture(); if (!$this->hasConstructedFuture) { $future->setMethod($this->method); $oauth_headers = $this->getOAuth1Headers(); $oauth_headers['oauth_signature'] = $this->getSignature(); $full_oauth_header = array(); foreach ($oauth_headers as $header => $value) { $full_oauth_header[] = $header.'="'.urlencode($value).'"'; } $full_oauth_header = 'OAuth '.implode(', ', $full_oauth_header); $future->addHeader('Authorization', $full_oauth_header); foreach ($this->headers as $header) { $future->addHeader($header[0], $header[1]); } $this->headers = array(); $this->hasConstructedFuture = true; } return $future; } protected function didReceiveResult($result) { return $result; } private function getOAuth1Headers() { if (!$this->nonce) { $this->nonce = Filesystem::readRandomCharacters(32); } if (!$this->timestamp) { $this->timestamp = time(); } $oauth_headers = array( 'oauth_consumer_key' => $this->consumerKey, 'oauth_signature_method' => $this->signatureMethod, 'oauth_timestamp' => $this->timestamp, 'oauth_nonce' => $this->nonce, 'oauth_version' => '1.0', ); if ($this->callbackURI) { $oauth_headers['oauth_callback'] = (string)$this->callbackURI; } if ($this->token) { $oauth_headers['oauth_token'] = $this->token; } return $oauth_headers; } private function sign(array $params) { ksort($params); $pstr = array(); foreach ($params as $key => $value) { $pstr[] = rawurlencode($key).'='.rawurlencode($value); } $pstr = implode('&', $pstr); $sign_uri = clone $this->uri; $sign_uri->setFragment(''); - $sign_uri->setQueryParams(array()); + $sign_uri->removeAllQueryParams(); $sign_uri->setProtocol(phutil_utf8_strtolower($sign_uri->getProtocol())); $protocol = $sign_uri->getProtocol(); switch ($protocol) { case 'http': if ($sign_uri->getPort() == 80) { $sign_uri->setPort(null); } break; case 'https': if ($sign_uri->getPort() == 443) { $sign_uri->setPort(null); } break; } $method = rawurlencode(phutil_utf8_strtoupper($this->method)); $sign_uri = rawurlencode((string)$sign_uri); $pstr = rawurlencode($pstr); $sign_input = "{$method}&{$sign_uri}&{$pstr}"; return $this->signString($sign_input); } private function signString($string) { $consumer_secret = null; if ($this->consumerSecret) { $consumer_secret = $this->consumerSecret->openEnvelope(); } $key = urlencode($consumer_secret).'&'.urlencode($this->tokenSecret); switch ($this->signatureMethod) { case 'HMAC-SHA1': if (!$this->consumerSecret) { throw new Exception( pht( "Signature method '%s' requires %s!", 'HMAC-SHA1', 'setConsumerSecret()')); } $hash = hash_hmac('sha1', $string, $key, true); return base64_encode($hash); case 'RSA-SHA1': if (!$this->privateKey) { throw new Exception( pht( "Signature method '%s' requires %s!", 'RSA-SHA1', 'setPrivateKey()')); } $cert = @openssl_pkey_get_private($this->privateKey->openEnvelope()); if (!$cert) { throw new Exception(pht('%s failed!', 'openssl_pkey_get_private()')); } $pkey = @openssl_get_privatekey($cert); if (!$pkey) { throw new Exception(pht('%s failed!', 'openssl_get_privatekey()')); } $signature = null; $ok = openssl_sign($string, $signature, $pkey, OPENSSL_ALGO_SHA1); if (!$ok) { throw new Exception(pht('%s failed!', 'openssl_sign()')); } openssl_free_key($pkey); return base64_encode($signature); case 'PLAINTEXT': if (!$this->consumerSecret) { throw new Exception( pht( "Signature method '%s' requires %s!", 'PLAINTEXT', 'setConsumerSecret()')); } return $key; default: throw new Exception(pht("Unknown signature method '%s'!", $string)); } } public function resolvex() { $result = $this->getProxiedFuture()->resolvex(); return $this->didReceiveResult($result); } public function resolveJSON() { $result = $this->getProxiedFuture()->resolvex(); $result = $this->didReceiveResult($result); list($body) = $result; try { return phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException(pht('Expected JSON.'), $ex); } } } diff --git a/src/future/slack/PhutilSlackFuture.php b/src/future/slack/PhutilSlackFuture.php index 0f23290..7ae8b0b 100644 --- a/src/future/slack/PhutilSlackFuture.php +++ b/src/future/slack/PhutilSlackFuture.php @@ -1,87 +1,87 @@ <?php final class PhutilSlackFuture extends FutureProxy { private $future; private $clientID; private $accessToken; private $action; private $params; private $method = 'GET'; public function __construct() { parent::__construct(null); } public function setAccessToken($token) { $this->accessToken = $token; return $this; } public function setClientID($client_id) { $this->clientID = $client_id; return $this; } public function setRawSlackQuery($action, array $params = array()) { $this->action = $action; $this->params = $params; return $this; } public function setMethod($method) { $this->method = $method; return $this; } protected function getProxiedFuture() { if (!$this->future) { $params = $this->params; if (!$this->action) { throw new Exception(pht('You must %s!', 'setRawSlackQuery()')); } if (!$this->accessToken) { throw new Exception(pht('You must %s!', 'setAccessToken()')); } $uri = new PhutilURI('https://slack.com/'); $uri->setPath('/api/'.$this->action); - $uri->setQueryParam('token', $this->accessToken); + $uri->replaceQueryParam('token', $this->accessToken); $future = new HTTPSFuture($uri); $future->setData($this->params); $future->setMethod($this->method); $this->future = $future; } return $this->future; } protected function didReceiveResult($result) { list($status, $body, $headers) = $result; if ($status->isError()) { throw $status; } $data = null; try { $data = phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected JSON response from Slack.'), $ex); } if (idx($data, 'error')) { $error = $data['error']; throw new Exception(pht('Received error from Slack: %s', $error)); } return $data; } } diff --git a/src/future/twitch/PhutilTwitchFuture.php b/src/future/twitch/PhutilTwitchFuture.php index 4c40e09..9dc06c3 100644 --- a/src/future/twitch/PhutilTwitchFuture.php +++ b/src/future/twitch/PhutilTwitchFuture.php @@ -1,93 +1,93 @@ <?php final class PhutilTwitchFuture extends FutureProxy { private $future; private $clientID; private $accessToken; private $action; private $params; private $method = 'GET'; public function __construct() { parent::__construct(null); } public function setAccessToken($token) { $this->accessToken = $token; return $this; } public function setClientID($client_id) { $this->clientID = $client_id; return $this; } public function setRawTwitchQuery($action, array $params = array()) { $this->action = $action; $this->params = $params; return $this; } public function setMethod($method) { $this->method = $method; return $this; } protected function getProxiedFuture() { if (!$this->future) { $params = $this->params; if (!$this->action) { throw new Exception(pht('You must %s!', 'setRawTwitchQuery()')); } if (!$this->accessToken) { throw new Exception(pht('You must %s!', 'setAccessToken()')); } $uri = new PhutilURI('https://api.twitch.tv/'); $uri->setPath('/kraken/'.ltrim($this->action, '/')); - $uri->setQueryParam('oauth_token', $this->accessToken); + $uri->replaceQueryParam('oauth_token', $this->accessToken); $future = new HTTPSFuture($uri); $future->setData($this->params); $future->setMethod($this->method); // NOTE: This is how the Twitch API is versioned. $future->addHeader('Accept', 'application/vnd.twitchtv.2+json'); // NOTE: This is required to avoid rate limiting. $future->addHeader('Client-ID', $this->clientID); $this->future = $future; } return $this->future; } protected function didReceiveResult($result) { list($status, $body, $headers) = $result; if ($status->isError()) { throw $status; } $data = null; try { $data = phutil_json_decode($body); } catch (PhutilJSONParserException $ex) { throw new PhutilProxyException( pht('Expected JSON response from Twitch.'), $ex); } if (idx($data, 'error')) { $error = $data['error']; throw new Exception(pht('Received error from Twitch: %s', $error)); } return $data; } } diff --git a/src/markup/engine/__tests__/PhutilRemarkupEngineTestCase.php b/src/markup/engine/__tests__/PhutilRemarkupEngineTestCase.php index 74932d9..c3b4960 100644 --- a/src/markup/engine/__tests__/PhutilRemarkupEngineTestCase.php +++ b/src/markup/engine/__tests__/PhutilRemarkupEngineTestCase.php @@ -1,121 +1,132 @@ <?php /** * Test cases for @{class:PhutilRemarkupEngine}. */ final class PhutilRemarkupEngineTestCase extends PhutilTestCase { public function testEngine() { $root = dirname(__FILE__).'/remarkup/'; foreach (Filesystem::listDirectory($root, $hidden = false) as $file) { $this->markupText($root.$file); } } private function markupText($markup_file) { $contents = Filesystem::readFile($markup_file); $file = basename($markup_file); $parts = explode("\n~~~~~~~~~~\n", $contents); $this->assertEqual(3, count($parts), $markup_file); list($input_remarkup, $expected_output, $expected_text) = $parts; + $input_remarkup = $this->unescapeTrailingWhitespace($input_remarkup); + $expected_output = $this->unescapeTrailingWhitespace($expected_output); + $expected_text = $this->unescapeTrailingWhitespace($expected_text); + $engine = $this->buildNewTestEngine(); switch ($file) { case 'raw-escape.txt': // NOTE: Here, we want to test PhutilRemarkupEscapeRemarkupRule and // PhutilRemarkupBlockStorage, which are triggered by "\1". In the // test, "~" is used as a placeholder for "\1" since it's hard to type // "\1". $input_remarkup = str_replace('~', "\1", $input_remarkup); $expected_output = str_replace('~', "\1", $expected_output); $expected_text = str_replace('~', "\1", $expected_text); break; case 'toc.txt': $engine->setConfig('header.generate-toc', true); break; case 'link-same-window.txt': $engine->setConfig('uri.same-window', true); break; case 'link-square.txt': $engine->setConfig('uri.base', 'http://www.example.com/'); $engine->setConfig('uri.here', 'http://www.example.com/page/'); break; } $actual_output = (string)$engine->markupText($input_remarkup); switch ($file) { case 'toc.txt': $table_of_contents = PhutilRemarkupHeaderBlockRule::renderTableOfContents($engine); $actual_output = $table_of_contents."\n\n".$actual_output; break; } $this->assertEqual( $expected_output, $actual_output, pht("Failed to markup HTML in file '%s'.", $file)); $engine->setMode(PhutilRemarkupEngine::MODE_TEXT); $actual_output = (string)$engine->markupText($input_remarkup); $this->assertEqual( $expected_text, $actual_output, pht("Failed to markup text in file '%s'.", $file)); } private function buildNewTestEngine() { $engine = new PhutilRemarkupEngine(); $engine->setConfig( 'uri.allowed-protocols', array( 'http' => true, 'mailto' => true, 'tel' => true, )); $rules = array(); $rules[] = new PhutilRemarkupEscapeRemarkupRule(); $rules[] = new PhutilRemarkupMonospaceRule(); $rules[] = new PhutilRemarkupDocumentLinkRule(); $rules[] = new PhutilRemarkupHyperlinkRule(); $rules[] = new PhutilRemarkupBoldRule(); $rules[] = new PhutilRemarkupItalicRule(); $rules[] = new PhutilRemarkupDelRule(); $rules[] = new PhutilRemarkupUnderlineRule(); $rules[] = new PhutilRemarkupHighlightRule(); $blocks = array(); $blocks[] = new PhutilRemarkupQuotesBlockRule(); $blocks[] = new PhutilRemarkupReplyBlockRule(); $blocks[] = new PhutilRemarkupHeaderBlockRule(); $blocks[] = new PhutilRemarkupHorizontalRuleBlockRule(); $blocks[] = new PhutilRemarkupCodeBlockRule(); $blocks[] = new PhutilRemarkupLiteralBlockRule(); $blocks[] = new PhutilRemarkupNoteBlockRule(); $blocks[] = new PhutilRemarkupTableBlockRule(); $blocks[] = new PhutilRemarkupSimpleTableBlockRule(); $blocks[] = new PhutilRemarkupDefaultBlockRule(); $blocks[] = new PhutilRemarkupListBlockRule(); $blocks[] = new PhutilRemarkupInterpreterBlockRule(); foreach ($blocks as $block) { if (!($block instanceof PhutilRemarkupCodeBlockRule)) { $block->setMarkupRules($rules); } } $engine->setBlockRules($blocks); return $engine; } + + private function unescapeTrailingWhitespace($input) { + // Remove up to one "~" at the end of each line so trailing whitespace may + // be written in tests as " ~". + return preg_replace('/~$/m', '', $input); + } + } diff --git a/src/markup/engine/__tests__/remarkup/del.txt b/src/markup/engine/__tests__/remarkup/del.txt index c1120bf..955ad86 100644 --- a/src/markup/engine/__tests__/remarkup/del.txt +++ b/src/markup/engine/__tests__/remarkup/del.txt @@ -1,11 +1,11 @@ -omg~~ wtf~~~~~ bbq~~~ lol~~ -~~deleted text~~ +omg~~ wtf~~~~~ bbq~~~ lol~~~ +~~deleted text~~~ ~~This is a great idea~~~ die forever please -~~~~~~ +~~~~~~~ ~~~~~~~~~~ -<p>omg~~ wtf~~~~~ bbq~~~ lol~~ +<p>omg~~ wtf~~~~~ bbq~~~ lol~~~ <del>deleted text</del> <del>This is a great idea~</del> die forever please ~~~~~~</p> ~~~~~~~~~~ -omg~~ wtf~~~~~ bbq~~~ lol~~ ~~deleted text~~ ~~This is a great idea~~~ die forever please ~~~~~~ +omg~~ wtf~~~~~ bbq~~~ lol~~ ~~deleted text~~ ~~This is a great idea~~~ die forever please ~~~~~~~ diff --git a/src/markup/engine/__tests__/remarkup/link-with-tilde.txt b/src/markup/engine/__tests__/remarkup/link-with-tilde.txt index 9f48f60..615814d 100644 --- a/src/markup/engine/__tests__/remarkup/link-with-tilde.txt +++ b/src/markup/engine/__tests__/remarkup/link-with-tilde.txt @@ -1,5 +1,5 @@ -http://www.example.com/~ +http://www.example.com/~~ ~~~~~~~~~~ <p><a href="http://www.example.com/~" class="remarkup-link" target="_blank" rel="noreferrer">http://www.example.com/~</a></p> ~~~~~~~~~~ -http://www.example.com/~ +http://www.example.com/~~ diff --git a/src/markup/engine/__tests__/remarkup/quoted-indent-block.txt b/src/markup/engine/__tests__/remarkup/quoted-indent-block.txt new file mode 100644 index 0000000..80a7428 --- /dev/null +++ b/src/markup/engine/__tests__/remarkup/quoted-indent-block.txt @@ -0,0 +1,5 @@ +> xyz +~~~~~~~~~~ +<blockquote><div class="remarkup-code-block" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code">xyz</pre></div></blockquote> +~~~~~~~~~~ +> xyz diff --git a/src/markup/engine/__tests__/remarkup/quoted-lists.txt b/src/markup/engine/__tests__/remarkup/quoted-lists.txt new file mode 100644 index 0000000..bfe622b --- /dev/null +++ b/src/markup/engine/__tests__/remarkup/quoted-lists.txt @@ -0,0 +1,24 @@ +> # X +> # Y +> +> B +> +> * C +~~~~~~~~~~ +<blockquote><ol class="remarkup-list"> +<li class="remarkup-list-item">X</li> +<li class="remarkup-list-item">Y</li> +</ol> + +<p>B</p> + +<ul class="remarkup-list"> +<li class="remarkup-list-item">C</li> +</ul></blockquote> +~~~~~~~~~~ +> 1. X +> 2. Y +> ~ +> B +> ~ +> - C diff --git a/src/markup/engine/__tests__/remarkup/quotes.txt b/src/markup/engine/__tests__/remarkup/quotes.txt index afa02d5..212f872 100644 --- a/src/markup/engine/__tests__/remarkup/quotes.txt +++ b/src/markup/engine/__tests__/remarkup/quotes.txt @@ -1,9 +1,9 @@ > Dear Sir, > I am utterly disgusted with the quality > of your inflight food service. ~~~~~~~~~~ <blockquote><p>Dear Sir, - I am utterly disgusted with the quality - of your inflight food service.</p></blockquote> +I am utterly disgusted with the quality +of your inflight food service.</p></blockquote> ~~~~~~~~~~ > Dear Sir, I am utterly disgusted with the quality of your inflight food service. diff --git a/src/markup/engine/__tests__/remarkup/raw-escape.txt b/src/markup/engine/__tests__/remarkup/raw-escape.txt index ee850b3..4cb635e 100644 --- a/src/markup/engine/__tests__/remarkup/raw-escape.txt +++ b/src/markup/engine/__tests__/remarkup/raw-escape.txt @@ -1,17 +1,17 @@ -~1~ +~1~~ ~2Z ~a ~~~~~~~~~~ <p>~1~</p> <p>~2Z</p> <p>~a</p> ~~~~~~~~~~ -~1~ +~1~~ ~2Z ~a diff --git a/src/markup/engine/remarkup/blockrule/PhutilRemarkupQuotesBlockRule.php b/src/markup/engine/remarkup/blockrule/PhutilRemarkupQuotesBlockRule.php index 6b0dc3f..7c90b34 100644 --- a/src/markup/engine/remarkup/blockrule/PhutilRemarkupQuotesBlockRule.php +++ b/src/markup/engine/remarkup/blockrule/PhutilRemarkupQuotesBlockRule.php @@ -1,65 +1,106 @@ <?php final class PhutilRemarkupQuotesBlockRule extends PhutilRemarkupBlockRule { public function getMatchingLineCount(array $lines, $cursor) { $pos = $cursor; if (preg_match('/^>/', $lines[$pos])) { do { ++$pos; } while (isset($lines[$pos]) && preg_match('/^>/', $lines[$pos])); } return ($pos - $cursor); } public function supportsChildBlocks() { return true; } public function extractChildText($text) { $text = phutil_split_lines($text, true); foreach ($text as $key => $line) { $text[$key] = substr($line, 1); } + // If every line in the block is empty or begins with at least one leading + // space, strip the initial space off each line. When we quote text, we + // normally add "> " (with a space) to the beginning of each line, which + // can disrupt some other rules. If the block appears to have this space + // in front of each line, remove it. + + $strip_space = true; + foreach ($text as $key => $line) { + $len = strlen($line); + + if (!$len) { + // We'll still strip spaces if there are some completely empty + // lines, they may have just had trailing whitespace trimmed. + continue; + } + + if ($line[0] == ' ' || $line[0] == "\n") { + continue; + } + + // The first character of this line is something other than a space, so + // we can't strip spaces. + $strip_space = false; + break; + } + + if ($strip_space) { + foreach ($text as $key => $line) { + $len = strlen($line); + if (!$len) { + continue; + } + + if ($line[0] !== ' ') { + continue; + } + + $text[$key] = substr($line, 1); + } + } + return array('', implode('', $text)); } public function markupText($text, $children) { if ($this->getEngine()->isTextMode()) { $lines = rtrim($children, "\n"); $lines = phutil_split_lines($lines); foreach ($lines as $key => $line) { if (isset($line[0]) && ($line[0] == '>')) { $line = '>'.$line; } else { $line = '> '.$line; } $lines[$key] = $line; } return implode('', $lines); } $attributes = array(); if ($this->getEngine()->isHTMLMailMode()) { $style = array( 'border-left: 3px solid #a7b5bf;', 'color: #464c5c;', 'font-style: italic;', 'margin: 4px 0 12px 0;', 'padding: 4px 12px;', 'background-color: #f8f9fc;', ); $attributes['style'] = implode(' ', $style); } return phutil_tag( 'blockquote', $attributes, $children); } } diff --git a/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php b/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php index 7ffc4bb..ca2b9b5 100644 --- a/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php +++ b/src/markup/engine/remarkup/blockrule/PhutilRemarkupTestInterpreterRule.php @@ -1,17 +1,17 @@ <?php final class PhutilRemarkupTestInterpreterRule extends PhutilRemarkupBlockInterpreter { public function getInterpreterName() { return 'phutil_test_block_interpreter'; } public function markupContent($content, array $argv) { return sprintf( "Content: (%s)\nArgv: (%s)", $content, - http_build_query($argv)); + phutil_build_http_querystring($argv)); } } diff --git a/src/markup/engine/remarkup/markuprule/PhutilRemarkupDocumentLinkRule.php b/src/markup/engine/remarkup/markuprule/PhutilRemarkupDocumentLinkRule.php index 27c7290..968d373 100644 --- a/src/markup/engine/remarkup/markuprule/PhutilRemarkupDocumentLinkRule.php +++ b/src/markup/engine/remarkup/markuprule/PhutilRemarkupDocumentLinkRule.php @@ -1,175 +1,179 @@ <?php final class PhutilRemarkupDocumentLinkRule extends PhutilRemarkupRule { public function getPriority() { return 150.0; } public function apply($text) { // Handle mediawiki-style links: [[ href | name ]] $text = preg_replace_callback( '@\B\\[\\[([^|\\]]+)(?:\\|([^\\]]+))?\\]\\]\B@U', array($this, 'markupDocumentLink'), $text); // Handle markdown-style links: [name](href) $text = preg_replace_callback( '@'. '\B'. '\\[([^\\]]+)\\]'. '\\('. '(\s*'. // See T12343. This is making some kind of effort to implement // parenthesis balancing rules. It won't get nested parentheses // right, but should do OK for Wikipedia pages, which seem to be // the most important use case. // Match zero or more non-parenthesis, non-space characters. '[^\s()]*'. // Match zero or more sequences of "(...)", where two balanced // parentheses enclose zero or more normal characters. If we // match some, optionally match more stuff at the end. '(?:(?:\\([^ ()]*\\))+[^\s()]*)?'. '\s*)'. '\\)'. '\B'. '@U', array($this, 'markupAlternateLink'), $text); return $text; } protected function renderHyperlink($link, $name) { $engine = $this->getEngine(); $is_anchor = false; if (strncmp($link, '/', 1) == 0) { $base = $engine->getConfig('uri.base'); $base = rtrim($base, '/'); $link = $base.$link; } else if (strncmp($link, '#', 1) == 0) { $here = $engine->getConfig('uri.here'); $link = $here.$link; $is_anchor = true; } if ($engine->isTextMode()) { // If present, strip off "mailto:" or "tel:". $link = preg_replace('/^(?:mailto|tel):/', '', $link); if (!strlen($name)) { return $link; } return $name.' <'.$link.'>'; } if (!strlen($name)) { $name = $link; $name = preg_replace('/^(?:mailto|tel):/', '', $name); } if ($engine->getState('toc')) { return $name; } $same_window = $engine->getConfig('uri.same-window', false); if ($same_window) { $target = null; } else { $target = '_blank'; } // For anchors on the same page, always stay here. if ($is_anchor) { $target = null; } return phutil_tag( 'a', array( 'href' => $link, 'class' => 'remarkup-link', 'target' => $target, 'rel' => 'noreferrer', ), $name); } public function markupAlternateLink(array $matches) { $uri = trim($matches[2]); + if (!strlen($uri)) { + return $matches[0]; + } + // NOTE: We apply some special rules to avoid false positives here. The // major concern is that we do not want to convert `x[0][1](y)` in a // discussion about C source code into a link. To this end, we: // // - Don't match at word boundaries; // - require the URI to contain a "/" character or "@" character; and // - reject URIs which being with a quote character. if ($uri[0] == '"' || $uri[0] == "'" || $uri[0] == '`') { return $matches[0]; } if (!strlen($uri[0])) { return $matches[0]; } if (strpos($uri, '/') === false && strpos($uri, '@') === false && strncmp($uri, 'tel:', 4)) { return $matches[0]; } return $this->markupDocumentLink( array( $matches[0], $matches[2], $matches[1], )); } public function markupDocumentLink(array $matches) { $uri = trim($matches[1]); $name = trim(idx($matches, 2)); // If whatever is being linked to begins with "/" or "#", or has "://", // or is "mailto:" or "tel:", treat it as a URI instead of a wiki page. $is_uri = preg_match('@(^/)|(://)|(^#)|(^(?:mailto|tel):)@', $uri); if ($is_uri && strncmp('/', $uri, 1) && strncmp('#', $uri, 1)) { $protocols = $this->getEngine()->getConfig( 'uri.allowed-protocols', array()); try { $protocol = id(new PhutilURI($uri))->getProtocol(); if (!idx($protocols, $protocol)) { // Don't treat this as a URI if it's not an allowed protocol. $is_uri = false; } } catch (Exception $ex) { // We can end up here if we try to parse an ambiguous URI, see // T12796. $is_uri = false; } } // As a special case, skip "[[ / ]]" so that Phriction picks it up as a // link to the Phriction root. It is more useful to be able to use this // syntax to link to the root document than the home page of the install. if ($uri == '/') { $is_uri = false; } if (!$is_uri) { return $matches[0]; } return $this->getEngine()->storeText($this->renderHyperlink($uri, $name)); } } diff --git a/src/markup/syntax/engine/PhutilDefaultSyntaxHighlighterEngine.php b/src/markup/syntax/engine/PhutilDefaultSyntaxHighlighterEngine.php index b114eb6..1ba8913 100644 --- a/src/markup/syntax/engine/PhutilDefaultSyntaxHighlighterEngine.php +++ b/src/markup/syntax/engine/PhutilDefaultSyntaxHighlighterEngine.php @@ -1,115 +1,115 @@ <?php final class PhutilDefaultSyntaxHighlighterEngine extends PhutilSyntaxHighlighterEngine { private $config = array(); public function setConfig($key, $value) { $this->config[$key] = $value; return $this; } public function getLanguageFromFilename($filename) { static $default_map = array( // All files which have file extensions that we haven't already matched // map to their extensions. '@\\.([^./]+)$@' => 1, ); $maps = array(); if (!empty($this->config['filename.map'])) { $maps[] = $this->config['filename.map']; } $maps[] = $default_map; foreach ($maps as $map) { foreach ($map as $regexp => $lang) { $matches = null; if (preg_match($regexp, $filename, $matches)) { if (is_numeric($lang)) { return idx($matches, $lang); } else { return $lang; } } } } return null; } public function getHighlightFuture($language, $source) { if ($language === null) { $language = PhutilLanguageGuesser::guessLanguage($source); } $have_pygments = !empty($this->config['pygments.enabled']); if ($language == 'php' && PhutilXHPASTBinary::isAvailable()) { return id(new PhutilXHPASTSyntaxHighlighter()) ->getHighlightFuture($source); } if ($language == 'console') { return id(new PhutilConsoleSyntaxHighlighter()) ->getHighlightFuture($source); } if ($language == 'diviner' || $language == 'remarkup') { return id(new PhutilDivinerSyntaxHighlighter()) ->getHighlightFuture($source); } if ($language == 'rainbow') { return id(new PhutilRainbowSyntaxHighlighter()) ->getHighlightFuture($source); } if ($language == 'php') { return id(new PhutilLexerSyntaxHighlighter()) ->setConfig('lexer', new PhutilPHPFragmentLexer()) ->setConfig('language', 'php') ->getHighlightFuture($source); } - if ($language == 'py') { + if ($language == 'py' || $language == 'python') { return id(new PhutilLexerSyntaxHighlighter()) ->setConfig('lexer', new PhutilPythonFragmentLexer()) ->setConfig('language', 'py') ->getHighlightFuture($source); } if ($language == 'java') { return id(new PhutilLexerSyntaxHighlighter()) ->setConfig('lexer', new PhutilJavaFragmentLexer()) ->setConfig('language', 'java') ->getHighlightFuture($source); } if ($language == 'json') { return id(new PhutilLexerSyntaxHighlighter()) ->setConfig('lexer', new PhutilJSONFragmentLexer()) ->getHighlightFuture($source); } if ($language == 'invisible') { return id(new PhutilInvisibleSyntaxHighlighter()) ->getHighlightFuture($source); } // Don't invoke Pygments for plain text, since it's expensive and has // no effect. if ($language !== 'text' && $language !== 'txt') { if ($have_pygments) { return id(new PhutilPygmentsSyntaxHighlighter()) ->setConfig('language', $language) ->getHighlightFuture($source); } } return id(new PhutilDefaultSyntaxHighlighter()) ->getHighlightFuture($source); } } diff --git a/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php b/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php index 675f2b3..6b1888c 100644 --- a/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php +++ b/src/markup/syntax/highlighter/PhutilPygmentsSyntaxHighlighter.php @@ -1,225 +1,230 @@ <?php final class PhutilPygmentsSyntaxHighlighter extends Phobject { private $config = array(); public function setConfig($key, $value) { $this->config[$key] = $value; return $this; } public function getHighlightFuture($source) { $language = idx($this->config, 'language'); if (preg_match('/\r(?!\n)/', $source)) { // TODO: Pygments converts "\r" newlines into "\n" newlines, so we can't // use it on files with "\r" newlines. If we have "\r" not followed by // "\n" in the file, skip highlighting. $language = null; } if ($language) { $language = $this->getPygmentsLexerNameFromLanguageName($language); + + // See T13224. Under Ubuntu, avoid leaving an intermedite "dash" shell + // process so we hit "pygmentize" directly if we have to SIGKILL this + // because it explodes. + $future = new ExecFuture( - 'pygmentize -O encoding=utf-8 -O stripnl=False -f html -l %s', + 'exec pygmentize -O encoding=utf-8 -O stripnl=False -f html -l %s', $language); $scrub = false; if ($language == 'php' && strpos($source, '<?') === false) { $source = "<?php\n".$source; $scrub = true; } // See T13224. In some cases, "pygmentize" has explosive runtime on small // inputs. Put a hard cap on how long it is allowed to run for to limit // the amount of damage it can do. $future->setTimeout(15); $future->write($source); return new PhutilDefaultSyntaxHighlighterEnginePygmentsFuture( $future, $source, $scrub); } return id(new PhutilDefaultSyntaxHighlighter()) ->getHighlightFuture($source); } private function getPygmentsLexerNameFromLanguageName($language) { static $map = array( 'adb' => 'ada', 'ads' => 'ada', 'ahkl' => 'ahk', 'as' => 'as3', 'asax' => 'aspx-vb', 'ascx' => 'aspx-vb', 'ashx' => 'aspx-vb', 'ASM' => 'nasm', 'asm' => 'nasm', 'asmx' => 'aspx-vb', 'aspx' => 'aspx-vb', 'autodelegate' => 'myghty', 'autohandler' => 'mason', 'aux' => 'tex', 'axd' => 'aspx-vb', 'b' => 'brainfuck', 'bas' => 'vb.net', 'bf' => 'brainfuck', 'bmx' => 'blitzmax', 'c++' => 'cpp', 'c++-objdump' => 'cpp-objdump', 'cc' => 'cpp', 'cfc' => 'cfm', 'cfg' => 'ini', 'cfml' => 'cfm', 'cl' => 'common-lisp', 'clj' => 'clojure', 'cmd' => 'bat', 'coffee' => 'coffee-script', 'cs' => 'csharp', 'csh' => 'tcsh', 'cw' => 'redcode', 'cxx' => 'cpp', 'cxx-objdump' => 'cpp-objdump', 'darcspatch' => 'dpatch', 'def' => 'modula2', 'dhandler' => 'mason', 'di' => 'd', 'duby' => 'rb', 'dyl' => 'dylan', 'ebuild' => 'bash', 'eclass' => 'bash', 'el' => 'common-lisp', 'eps' => 'postscript', 'erl' => 'erlang', 'erl-sh' => 'erl', 'f' => 'fortran', 'f90' => 'fortran', 'F90' => 'fortran', // c4science custo 'feature' => 'Cucumber', 'fhtml' => 'velocity', 'flx' => 'felix', 'flxh' => 'felix', 'frag' => 'glsl', 'g' => 'antlr-ruby', 'G' => 'antlr-ruby', 'gdc' => 'gooddata-cl', 'gemspec' => 'rb', 'geo' => 'glsl', 'GNUmakefile' => 'make', 'h' => 'c', 'h++' => 'cpp', 'hh' => 'cpp', 'hpp' => 'cpp', 'hql' => 'sql', 'hrl' => 'erlang', 'hs' => 'haskell', 'htaccess' => 'apacheconf', 'htm' => 'html', 'html' => 'html+evoque', 'hxx' => 'cpp', 'hy' => 'hybris', 'hyb' => 'hybris', 'ik' => 'ioke', 'inc' => 'pov', 'j' => 'objective-j', 'jbst' => 'duel', 'kid' => 'genshi', 'ksh' => 'bash', 'less' => 'css', 'lgt' => 'logtalk', 'lisp' => 'common-lisp', 'll' => 'llvm', 'm' => 'objective-c', 'mak' => 'make', 'Makefile' => 'make', 'makefile' => 'make', 'man' => 'groff', 'mao' => 'mako', 'mc' => 'mason', 'md' => 'minid', 'mhtml' => 'mason', 'mi' => 'mason', 'ml' => 'ocaml', 'mli' => 'ocaml', 'mll' => 'ocaml', 'mly' => 'ocaml', 'mm' => 'objective-c', 'mo' => 'modelica', 'mod' => 'modula2', 'moo' => 'moocode', 'mu' => 'mupad', 'myt' => 'myghty', 'ns2' => 'newspeak', 'pas' => 'delphi', 'patch' => 'diff', 'phtml' => 'html+php', 'pl' => 'prolog', 'plot' => 'gnuplot', 'plt' => 'gnuplot', 'pm' => 'perl', 'po' => 'pot', 'pp' => 'puppet', 'pro' => 'prolog', 'proto' => 'protobuf', 'ps' => 'postscript', 'pxd' => 'cython', 'pxi' => 'cython', 'py' => 'python', 'pyw' => 'python', 'pyx' => 'cython', 'R' => 'splus', 'r' => 'rebol', 'r3' => 'rebol', 'rake' => 'rb', 'Rakefile' => 'rb', 'rbw' => 'rb', 'rbx' => 'rb', 'rest' => 'rst', 'rl' => 'ragel-em', 'robot' => 'robotframework', 'Rout' => 'rconsole', 'rss' => 'xml', 's' => 'gas', 'S' => 'splus', 'sc' => 'python', 'scm' => 'scheme', 'SConscript' => 'python', 'SConstruct' => 'python', 'scss' => 'css', 'sh' => 'bash', 'sh-session' => 'console', 'spt' => 'cheetah', 'sqlite3-console' => 'sqlite3', 'st' => 'smalltalk', 'sv' => 'v', 'tac' => 'python', 'tmpl' => 'cheetah', 'toc' => 'tex', 'tpl' => 'smarty', 'txt' => 'text', 'vapi' => 'vala', 'vb' => 'vb.net', 'vert' => 'glsl', 'vhd' => 'vhdl', 'vimrc' => 'vim', 'vm' => 'velocity', 'weechatlog' => 'irc', 'wlua' => 'lua', 'wsdl' => 'xml', 'xhtml' => 'html', 'xml' => 'xml+evoque', 'xqy' => 'xquery', 'xsd' => 'xml', 'xsl' => 'xslt', 'xslt' => 'xml', 'yml' => 'yaml', ); return idx($map, $language, $language); } } diff --git a/src/parser/PhutilJSON.php b/src/parser/PhutilJSON.php index bc9e5b6..0bcc4f7 100644 --- a/src/parser/PhutilJSON.php +++ b/src/parser/PhutilJSON.php @@ -1,155 +1,155 @@ <?php /** * Utilities for wrangling JSON. * * @task pretty Formatting JSON Objects * @task internal Internals */ final class PhutilJSON extends Phobject { /* -( Formatting JSON Objects )-------------------------------------------- */ /** * Encode an object in JSON and pretty-print it. This generates a valid JSON * object with human-readable whitespace and indentation. * * @param dict An object to encode in JSON. * @return string Pretty-printed object representation. */ public function encodeFormatted(array $object) { return $this->encodeFormattedObject($object, 0)."\n"; } /** * Encode a list in JSON and pretty-print it, discarding keys. * * @param list<wild> List to encode in JSON. * @return string Pretty-printed list representation. */ public function encodeAsList(array $list) { return $this->encodeFormattedArray($list, 0)."\n"; } /* -( Internals )---------------------------------------------------------- */ /** * Pretty-print a JSON object. * * @param dict Object to format. * @param int Current depth, for indentation. * @return string Pretty-printed value. * @task internal */ private function encodeFormattedObject($object, $depth) { if (empty($object)) { return '{}'; } $pre = $this->getIndent($depth); $key_pre = $this->getIndent($depth + 1); $keys = array(); $vals = array(); $max = 0; foreach ($object as $key => $val) { $ekey = $this->encodeFormattedValue((string)$key, 0); $max = max($max, strlen($ekey)); $keys[] = $ekey; $vals[] = $this->encodeFormattedValue($val, $depth + 1); } $key_lines = array(); foreach ($keys as $k => $key) { $key_lines[] = $key_pre.$key.': '.$vals[$k]; } $key_lines = implode(",\n", $key_lines); $out = "{\n"; $out .= $key_lines; $out .= "\n"; $out .= $pre.'}'; return $out; } /** * Pretty-print a JSON list. * * @param list List to format. * @param int Current depth, for indentation. * @return string Pretty-printed value. * @task internal */ private function encodeFormattedArray($array, $depth) { if (empty($array)) { return '[]'; } $pre = $this->getIndent($depth); $val_pre = $this->getIndent($depth + 1); $vals = array(); foreach ($array as $val) { $vals[] = $val_pre.$this->encodeFormattedValue($val, $depth + 1); } $val_lines = implode(",\n", $vals); $out = "[\n"; $out .= $val_lines; $out .= "\n"; $out .= $pre.']'; return $out; } /** * Pretty-print a JSON value. * * @param dict Value to format. * @param int Current depth, for indentation. * @return string Pretty-printed value. * @task internal */ private function encodeFormattedValue($value, $depth) { if (is_array($value)) { - if (empty($value) || array_keys($value) === range(0, count($value) - 1)) { + if (phutil_is_natural_list($value)) { return $this->encodeFormattedArray($value, $depth); } else { return $this->encodeFormattedObject($value, $depth); } } else { if (defined('JSON_UNESCAPED_SLASHES')) { // If we have a new enough version of PHP, disable escaping of slashes // when pretty-printing values. Escaping slashes can defuse an attack // where the attacker embeds "</script>" inside a JSON string, but that // isn't relevant when rendering JSON for human viewers. return json_encode($value, JSON_UNESCAPED_SLASHES); } else { return json_encode($value); } } } /** * Render a string corresponding to the current indent depth. * * @param int Current depth. * @return string Indentation. * @task internal */ private function getIndent($depth) { if (!$depth) { return ''; } else { return str_repeat(' ', $depth); } } } diff --git a/src/parser/PhutilTypeSpec.php b/src/parser/PhutilTypeSpec.php index dbf3b4f..c49fccf 100644 --- a/src/parser/PhutilTypeSpec.php +++ b/src/parser/PhutilTypeSpec.php @@ -1,1921 +1,1921 @@ <?php /** * Perform type checks using a simple type grammar. The grammar supports the * following basic types: * * int * float * bool * string * null * callable * regex * wild * AnyClassOrInterfaceName * * It supports the following complex types: * * list<type> * map<type, type> * type|type * * A type may be marked as optional by suffixing it with "?" or prefixing it * with the word "optional": * * int? * optional int * * A type may have a human-readable comment in parentheses, at the end: * * int (must be even) * * For example, these are valid type specifications: * * int|string * map<int, bool> * list<list<wild>> * optional int * string (uppercase) * */ final class PhutilTypeSpec extends Phobject { private $type; private $subtypes = array(); private $optional; private $comment; private function __construct() {} public function getType() { return $this->type; } public function check($value, $name = null) { switch ($this->type) { case 'int': if (!is_int($value)) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'float': if (!is_float($value)) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'bool': if (!is_bool($value)) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'string': if (!is_string($value)) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'regex': $trap = new PhutilErrorTrap(); $ok = @preg_match($value, ''); $err = $trap->getErrorsAsString(); $trap->destroy(); if ($ok === false) { throw new PhutilTypeCheckException($this, $value, $name, $err); } break; case 'null': if (!is_null($value)) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'list': if (!is_array($value)) { throw new PhutilTypeCheckException($this, $value, $name); } - if ($value && (array_keys($value) !== range(0, count($value) - 1))) { + if ($value && !phutil_is_natural_list($value)) { throw new PhutilTypeCheckException($this, $value, $name); } try { foreach ($value as $v) { $this->subtypes[0]->check($v); } } catch (PhutilTypeCheckException $ex) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'map': if (!is_array($value)) { throw new PhutilTypeCheckException($this, $value, $name); } try { foreach ($value as $k => $v) { $this->subtypes[0]->check($k); $this->subtypes[1]->check($v); } } catch (PhutilTypeCheckException $ex) { throw new PhutilTypeCheckException($this, $value, $name); } break; case 'or': foreach ($this->subtypes as $subtype) { try { $subtype->check($value); return; } catch (PhutilTypeCheckException $ex) { // Ignore. } } throw new PhutilTypeCheckException($this, $value, $name); case 'wild': return; default: if (class_exists($this->type, false)) { if ($value instanceof $this->type) { return; } } else if (interface_exists($this->type, false)) { if ($value instanceof $this->type) { return; } } throw new PhutilTypeCheckException($this, $value, $name); } } public static function checkMap(array $values, array $types) { $extra = array_diff_key($values, $types); if ($extra) { throw new PhutilTypeExtraParametersException($extra); } $missing = array(); foreach ($types as $key => $type) { $types[$key] = self::newFromString($type); if (!array_key_exists($key, $values)) { if (!$types[$key]->optional) { $missing[] = $key; } } } if ($missing) { throw new PhutilTypeMissingParametersException($missing); } foreach ($types as $key => $type) { if (array_key_exists($key, $values)) { $type->check($values[$key], $key); } } } public static function getCommonParentClass($class_a, $class_b) { // Make sure both classes are really classes. try { if (!class_exists($class_a) || !class_exists($class_b)) { return null; } } catch (PhutilMissingSymbolException $ex) { return null; } $ancestors_a = array(); do { $ancestors_a[] = $class_a; } while ($class_a = get_parent_class($class_a)); $ancestors_b = array(); do { $ancestors_b[] = $class_b; } while ($class_b = get_parent_class($class_b)); return head(array_intersect($ancestors_a, $ancestors_b)); } public static function getTypeOf($value) { if (is_int($value)) { return 'int'; } else if (is_float($value)) { return 'float'; } else if (is_bool($value)) { return 'bool'; } else if (is_string($value)) { return 'string'; } else if (is_null($value)) { return 'null'; } else if (is_object($value)) { return get_class($value); } else if (is_array($value)) { $vtype = self::getTypeOfVector($value); - if ($value && (array_keys($value) === range(0, count($value) - 1))) { + if ($value && phutil_is_natural_list($value)) { return 'list<'.$vtype.'>'; } else { $ktype = self::getTypeOfVector(array_keys($value)); return "map<{$ktype}, {$vtype}>"; } } else { return 'wild'; } } private static function getTypeOfVector(array $vector) { if (!$vector) { return 'wild'; } $type = null; foreach ($vector as $value) { $vtype = self::getTypeOf($value); if ($type === null) { $type = $vtype; } else if ($type === $vtype) { continue; } else { $parent = self::getCommonParentClass($type, $vtype); if ($parent) { $type = $parent; } else { return 'wild'; } } } return $type; } public function toString() { $sub = array(); foreach ($this->subtypes as $subtype) { $sub[] = $subtype->toString(); } switch ($this->type) { case 'map': $string = 'map<'.$sub[0].', '.$sub[1].'>'; break; case 'list': $string = 'list<'.$sub[0].'>'; break; case 'or': $string = implode('|', $sub); break; default: $string = $this->type; break; } if ($this->optional) { $string = 'optional '.$string; } if ($this->comment) { $string .= ' ('.$this->comment.')'; } return $string; } public static function newFromString($string) { $lexer = self::getLexer(); $tokens = $lexer->getTokens($string); // Strip whitespace tokens. foreach ($tokens as $key => $token) { $type = $token[0]; if ($type == ' ') { unset($tokens[$key]); } } $tokens = array_values($tokens); $callback = array(__CLASS__, 'didReduceTokens'); return self::parseTokens($tokens, $callback); } public static function didReduceTokens($rule, $production, array $tokens) { switch ($rule) { case 'start': case 'some_type': case 'not_or_type': return $tokens[0]; case 'type': if ($production == 'yes') { $tokens[0]->optional = true; } return $tokens[0]; case 'basic_type': $obj = new PhutilTypeSpec(); $obj->type = $tokens[0][1]; return $obj; case 'or_type': $l = $tokens[0]; $r = $tokens[2]; if ($l->type == 'or') { if ($r->type == 'or') { foreach ($r->subtypes as $subtype) { $l->subtypes[] = $subtype; } } else { $l->subtypes[] = $r; } return $l; } else if ($r->type == 'or') { $r->subtypes[] = $l; return $r; } else { $obj = new PhutilTypeSpec(); $obj->type = 'or'; $obj->subtypes[] = $l; $obj->subtypes[] = $r; return $obj; } break; case 'map_type': $obj = new PhutilTypeSpec(); $obj->type = 'map'; $obj->subtypes[] = $tokens[2]; $obj->subtypes[] = $tokens[4]; return $obj; case 'list_type': $obj = new PhutilTypeSpec(); $obj->type = 'list'; $obj->subtypes[] = $tokens[2]; return $obj; case 'maybe_optional': if ($production == 'yes') { $tokens[1]->optional = true; return $tokens[1]; } else { return $tokens[0]; } break; case 'maybe_comment': if ($production == 'yes') { $tokens[0]->comment = $tokens[1]; } return $tokens[0]; case 'comment': return $tokens[1]; case 'comment_text': $result = ''; foreach ($tokens as $token) { if (is_array($token)) { $result .= $token[1]; } else { $result .= $token; } } return $result; default: throw new Exception(pht("Unhandled parser rule '%s'!", $rule)); } } private static function getLexer() { static $lexer; if (!$lexer) { $lexer = new PhutilTypeLexer(); } return $lexer; } private static function parseTokens(array $tokens, $callback) { // NOTE: This is automatically generated by the script // `support/parser/generate-type-parser.php`. return PhutilParserGenerator::parseTokensWithTables( array( 0 => array( 'opt' => array( 0 => 'S', 1 => 3, ), 'k' => array( 0 => 'S', 1 => 20, ), 'map' => array( 0 => 'S', 1 => 21, ), 'list' => array( 0 => 'S', 1 => 71, ), ), 1 => array( '(end-of-file)' => array( 0 => 'A', ), ), 2 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'start', 1 => 0, 2 => 1, ), ), ), 3 => array( 'k' => array( 0 => 'S', 1 => 20, ), 'map' => array( 0 => 'S', 1 => 21, ), 'list' => array( 0 => 'S', 1 => 71, ), ), 4 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'maybe_optional', 1 => 'yes', 2 => 2, ), ), ), 5 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'maybe_comment', 1 => 'no', 2 => 1, ), ), '(' => array( 0 => 'S', 1 => 7, ), ), 6 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'maybe_comment', 1 => 'yes', 2 => 2, ), ), ), 7 => array( 'cm' => array( 0 => 'S', 1 => 11, ), ), 8 => array( ')' => array( 0 => 'S', 1 => 9, ), 'cm' => array( 0 => 'S', 1 => 10, ), ), 9 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'comment', 1 => 0, 2 => 3, ), ), ), 10 => array( ')' => array( 0 => 'R', 1 => array( 0 => 'comment_text', 1 => 0, 2 => 2, ), ), 'cm' => array( 0 => 'R', 1 => array( 0 => 'comment_text', 1 => 0, 2 => 2, ), ), ), 11 => array( ')' => array( 0 => 'R', 1 => array( 0 => 'comment_text', 1 => 1, 2 => 1, ), ), 'cm' => array( 0 => 'R', 1 => array( 0 => 'comment_text', 1 => 1, 2 => 1, ), ), ), 12 => array( '(' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'no', 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'no', 2 => 1, ), ), '?' => array( 0 => 'S', 1 => 13, ), ), 13 => array( '(' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'yes', 2 => 2, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'yes', 2 => 2, ), ), ), 14 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 15, ), ), 15 => array( 'k' => array( 0 => 'S', 1 => 20, ), 'map' => array( 0 => 'S', 1 => 21, ), 'list' => array( 0 => 'S', 1 => 71, ), ), 16 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), ), 17 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), ), 18 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), ), 19 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), ), 20 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), ), 21 => array( '<' => array( 0 => 'S', 1 => 22, ), ), 22 => array( 'k' => array( 0 => 'S', 1 => 57, ), 'map' => array( 0 => 'S', 1 => 58, ), 'list' => array( 0 => 'S', 1 => 67, ), ), 23 => array( ',' => array( 0 => 'S', 1 => 24, ), ), 24 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 25 => array( '>' => array( 0 => 'S', 1 => 26, ), ), 26 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), ), 27 => array( '>' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'no', 2 => 1, ), ), '?' => array( 0 => 'S', 1 => 28, ), ), 28 => array( '>' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'yes', 2 => 2, ), ), ), 29 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 30, ), ), 30 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 31 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), ), 32 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), ), 33 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), ), 34 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), ), 35 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), ), 36 => array( '<' => array( 0 => 'S', 1 => 37, ), ), 37 => array( 'k' => array( 0 => 'S', 1 => 57, ), 'map' => array( 0 => 'S', 1 => 58, ), 'list' => array( 0 => 'S', 1 => 67, ), ), 38 => array( ',' => array( 0 => 'S', 1 => 39, ), ), 39 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 40 => array( '>' => array( 0 => 'S', 1 => 41, ), ), 41 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), ), 42 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 43, ), ), 43 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 44 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), ), 45 => array( '<' => array( 0 => 'S', 1 => 46, ), ), 46 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 47 => array( '>' => array( 0 => 'S', 1 => 48, ), ), 48 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '>' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), ), 49 => array( ',' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'no', 2 => 1, ), ), '?' => array( 0 => 'S', 1 => 50, ), ), 50 => array( ',' => array( 0 => 'R', 1 => array( 0 => 'type', 1 => 'yes', 2 => 2, ), ), ), 51 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 52, ), ), 52 => array( 'k' => array( 0 => 'S', 1 => 57, ), 'map' => array( 0 => 'S', 1 => 58, ), 'list' => array( 0 => 'S', 1 => 67, ), ), 53 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 0, 2 => 3, ), ), ), 54 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 0, 2 => 1, ), ), ), 55 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 1, 2 => 1, ), ), ), 56 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'not_or_type', 1 => 2, 2 => 1, ), ), ), 57 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'basic_type', 1 => 0, 2 => 1, ), ), ), 58 => array( '<' => array( 0 => 'S', 1 => 59, ), ), 59 => array( 'k' => array( 0 => 'S', 1 => 57, ), 'map' => array( 0 => 'S', 1 => 58, ), 'list' => array( 0 => 'S', 1 => 67, ), ), 60 => array( ',' => array( 0 => 'S', 1 => 61, ), ), 61 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 62 => array( '>' => array( 0 => 'S', 1 => 63, ), ), 63 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'map_type', 1 => 0, 2 => 6, ), ), ), 64 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 65, ), ), 65 => array( 'k' => array( 0 => 'S', 1 => 57, ), 'map' => array( 0 => 'S', 1 => 58, ), 'list' => array( 0 => 'S', 1 => 67, ), ), 66 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), ), 67 => array( '<' => array( 0 => 'S', 1 => 68, ), ), 68 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 69 => array( '>' => array( 0 => 'S', 1 => 70, ), ), 70 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), ',' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), ), 71 => array( '<' => array( 0 => 'S', 1 => 72, ), ), 72 => array( 'k' => array( 0 => 'S', 1 => 35, ), 'map' => array( 0 => 'S', 1 => 36, ), 'list' => array( 0 => 'S', 1 => 45, ), ), 73 => array( '>' => array( 0 => 'S', 1 => 74, ), ), 74 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'list_type', 1 => 0, 2 => 4, ), ), ), 75 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'some_type', 1 => 1, 2 => 1, ), ), '|' => array( 0 => 'S', 1 => 76, ), ), 76 => array( 'k' => array( 0 => 'S', 1 => 20, ), 'map' => array( 0 => 'S', 1 => 21, ), 'list' => array( 0 => 'S', 1 => 71, ), ), 77 => array( '?' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '(' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), '|' => array( 0 => 'R', 1 => array( 0 => 'or_type', 1 => 1, 2 => 3, ), ), ), 78 => array( '(end-of-file)' => array( 0 => 'R', 1 => array( 0 => 'maybe_optional', 1 => 'no', 2 => 1, ), ), ), ), array( 0 => array( 'start' => 1, 'maybe_optional' => 2, 'maybe_comment' => 78, 'type' => 5, 'some_type' => 12, 'or_type' => 14, 'not_or_type' => 75, 'basic_type' => 17, 'map_type' => 18, 'list_type' => 19, ), 3 => array( 'maybe_comment' => 4, 'type' => 5, 'some_type' => 12, 'or_type' => 14, 'not_or_type' => 75, 'basic_type' => 17, 'map_type' => 18, 'list_type' => 19, ), 5 => array( 'comment' => 6, ), 7 => array( 'comment_text' => 8, ), 15 => array( 'not_or_type' => 16, 'basic_type' => 17, 'map_type' => 18, 'list_type' => 19, ), 22 => array( 'type' => 23, 'some_type' => 49, 'or_type' => 51, 'not_or_type' => 64, 'basic_type' => 54, 'map_type' => 55, 'list_type' => 56, ), 24 => array( 'type' => 25, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 30 => array( 'not_or_type' => 31, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 37 => array( 'type' => 38, 'some_type' => 49, 'or_type' => 51, 'not_or_type' => 64, 'basic_type' => 54, 'map_type' => 55, 'list_type' => 56, ), 39 => array( 'type' => 40, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 43 => array( 'not_or_type' => 44, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 46 => array( 'type' => 47, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 52 => array( 'not_or_type' => 53, 'basic_type' => 54, 'map_type' => 55, 'list_type' => 56, ), 59 => array( 'type' => 60, 'some_type' => 49, 'or_type' => 51, 'not_or_type' => 64, 'basic_type' => 54, 'map_type' => 55, 'list_type' => 56, ), 61 => array( 'type' => 62, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 65 => array( 'not_or_type' => 66, 'basic_type' => 54, 'map_type' => 55, 'list_type' => 56, ), 68 => array( 'type' => 69, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 72 => array( 'type' => 73, 'some_type' => 27, 'or_type' => 29, 'not_or_type' => 42, 'basic_type' => 32, 'map_type' => 33, 'list_type' => 34, ), 76 => array( 'not_or_type' => 77, 'basic_type' => 17, 'map_type' => 18, 'list_type' => 19, ), ), '(end-of-file)', $tokens, $callback); } } diff --git a/src/parser/PhutilURI.php b/src/parser/PhutilURI.php index 351a020..7ddd307 100644 --- a/src/parser/PhutilURI.php +++ b/src/parser/PhutilURI.php @@ -1,387 +1,559 @@ <?php /** * Structural representation of a URI. * * This class handles URIs of two types: standard URIs and Git URIs. * * Standard URIs look like `proto://user:pass@domain:port/path?query#fragment`. * Almost all URIs are in this form. * * Git URIs look like `user@host:path`. These URIs are used by Git and SCP * and have an implicit "ssh" protocol, no port, and interpret paths as * relative instead of absolute. */ final class PhutilURI extends Phobject { private $protocol; private $user; private $pass; private $domain; private $port; private $path; private $query = array(); private $fragment; private $type; const TYPE_URI = 'uri'; const TYPE_GIT = 'git'; - public function __construct($uri) { + public function __construct($uri, $params = array()) { if ($uri instanceof PhutilURI) { $this->protocol = $uri->protocol; $this->user = $uri->user; $this->pass = $uri->pass; $this->domain = $uri->domain; $this->port = $uri->port; $this->path = $uri->path; $this->query = $uri->query; $this->fragment = $uri->fragment; $this->type = $uri->type; + + $this->initializeQueryParams(phutil_string_cast($uri), $params); + return; } - $uri = (string)$uri; + $uri = phutil_string_cast($uri); $type = self::TYPE_URI; // Reject ambiguous URIs outright. Different versions of different clients // parse these in different ways. See T12526 for discussion. if (preg_match('(^[^/:]*://[^/]*[#?].*:)', $uri)) { throw new Exception( pht( 'Rejecting ambiguous URI "%s". This URI is not formatted or '. 'encoded properly.', $uri)); } $matches = null; if (preg_match('(^([^/:]*://[^/]*)(\\?.*)\z)', $uri, $matches)) { // If the URI is something like `idea://open?file=/path/to/file`, the // `parse_url()` function will parse `open?file=` as the host. This is // not the expected result. Break the URI into two pieces, stick a slash // in between them, parse that, then remove the path. See T6106. $parts = parse_url($matches[1].'/'.$matches[2]); unset($parts['path']); } else if ($this->isGitURIPattern($uri)) { // Handle Git/SCP URIs in the form "user@domain:relative/path". $user = '(?:(?P<user>[^/@]+)@)?'; $host = '(?P<host>[^/:]+)'; $path = ':(?P<path>.*)'; $ok = preg_match('(^'.$user.$host.$path.'\z)', $uri, $matches); if (!$ok) { throw new Exception( pht( 'Failed to parse URI "%s" as a Git URI.', $uri)); } $parts = $matches; $parts['scheme'] = 'ssh'; $type = self::TYPE_GIT; } else { $parts = parse_url($uri); } // The parse_url() call will accept URIs with leading whitespace, but many // other tools (like git) will not. See T4913 for a specific example. If // the input string has leading whitespace, fail the parse. if ($parts) { if (ltrim($uri) != $uri) { $parts = false; } } // NOTE: `parse_url()` is very liberal about host names; fail the parse if // the host looks like garbage. In particular, we do not allow hosts which // begin with "." or "-". See T12961 for a specific attack which relied on // hosts beginning with "-". if ($parts) { $host = idx($parts, 'host', ''); if (strlen($host)) { if (!preg_match('/^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-]*\z/', $host)) { $parts = false; } } } if (!$parts) { $parts = array(); } // stringyness is to preserve API compatibility and // allow the tests to continue passing $this->protocol = idx($parts, 'scheme', ''); $this->user = rawurldecode(idx($parts, 'user', '')); $this->pass = rawurldecode(idx($parts, 'pass', '')); $this->domain = idx($parts, 'host', ''); $this->port = (string)idx($parts, 'port', ''); $this->path = idx($parts, 'path', ''); $query = idx($parts, 'query'); if ($query) { - $this->query = id(new PhutilQueryStringParser())->parseQueryString( - $query); + $pairs = id(new PhutilQueryStringParser()) + ->parseQueryStringToPairList($query); + + foreach ($pairs as $pair) { + list($key, $value) = $pair; + $this->appendQueryParam($key, $value); + } } $this->fragment = idx($parts, 'fragment', ''); $this->type = $type; + + $this->initializeQueryParams($uri, $params); } public function __toString() { $prefix = null; if ($this->isGitURI()) { $port = null; } else { $port = $this->port; } $domain = $this->domain; $user = $this->user; $pass = $this->pass; if (strlen($user) && strlen($pass)) { $auth = rawurlencode($user).':'.rawurlencode($pass).'@'; } else if (strlen($user)) { $auth = rawurlencode($user).'@'; } else { $auth = null; } $protocol = $this->protocol; if ($this->isGitURI()) { $protocol = null; } else { if (strlen($auth)) { $protocol = nonempty($this->protocol, 'http'); } } if (strlen($protocol) || strlen($auth) || strlen($domain)) { if ($this->isGitURI()) { $prefix = "{$auth}{$domain}"; } else { $prefix = "{$protocol}://{$auth}{$domain}"; } if (strlen($port)) { $prefix .= ':'.$port; } } if ($this->query) { - $query = '?'.http_build_query($this->query, '', '&'); + $query = '?'.phutil_build_http_querystring_from_pairs($this->query); } else { $query = null; } if (strlen($this->getFragment())) { $fragment = '#'.$this->getFragment(); } else { $fragment = null; } $path = $this->getPath(); if ($this->isGitURI()) { if (strlen($path)) { $path = ':'.$path; } } return $prefix.$path.$query.$fragment; } + /** + * @deprecated + */ public function setQueryParam($key, $value) { - if ($value === null) { - unset($this->query[$key]); - } else { - $this->query[$key] = $value; + // To set, we replace the first matching key with the new value, then + // remove all other matching keys. This replaces the old value and retains + // the parameter order. + + $is_null = ($value === null); + + // Typecheck and cast the key before we compare it to existing keys. This + // raises an early exception if the key has a bad type. + list($key) = phutil_http_parameter_pair($key, ''); + + $found = false; + foreach ($this->query as $list_key => $pair) { + list($k, $v) = $pair; + + if ($k !== $key) { + continue; + } + + if ($found) { + unset($this->query[$list_key]); + continue; + } + + $found = true; + + if ($is_null) { + unset($this->query[$list_key]); + } else { + $this->insertQueryParam($key, $value, $list_key); + } + } + + $this->query = array_values($this->query); + + // If we didn't find an existing place to put it, add it to the end. + if (!$found) { + if (!$is_null) { + $this->appendQueryParam($key, $value); + } } + return $this; } + /** + * @deprecated + */ public function setQueryParams(array $params) { - $this->query = $params; + $this->query = array(); + + foreach ($params as $k => $v) { + $this->appendQueryParam($k, $v); + } + return $this; } + /** + * @deprecated + */ public function getQueryParams() { + $map = array(); + + foreach ($this->query as $pair) { + list($k, $v) = $pair; + $map[$k] = $v; + } + + return $map; + } + + public function getQueryParamsAsMap() { + $map = array(); + + foreach ($this->query as $pair) { + list($k, $v) = $pair; + + if (isset($map[$k])) { + throw new Exception( + pht( + 'Query parameters include a duplicate key ("%s") and can not be '. + 'nondestructively represented as a map.', + $k)); + } + + $map[$k] = $v; + } + + return $map; + } + + public function getQueryParamsAsPairList() { return $this->query; } + public function appendQueryParam($key, $value) { + return $this->insertQueryParam($key, $value); + } + + public function removeAllQueryParams() { + $this->query = array(); + return $this; + } + + public function removeQueryParam($remove_key) { + list($remove_key) = phutil_http_parameter_pair($remove_key, ''); + + foreach ($this->query as $idx => $pair) { + list($key, $value) = $pair; + + if ($key !== $remove_key) { + continue; + } + + unset($this->query[$idx]); + } + + $this->query = array_values($this->query); + + return $this; + } + + public function replaceQueryParam($replace_key, $replace_value) { + if ($replace_value === null) { + throw new InvalidArgumentException( + pht( + 'Value provided to "replaceQueryParam()" for key "%s" is NULL. '. + 'Use "removeQueryParam()" to remove a query parameter.', + $replace_key)); + } + + $this->removeQueryParam($replace_key); + $this->appendQueryParam($replace_key, $replace_value); + return $this; + } + + private function insertQueryParam($key, $value, $idx = null) { + list($key, $value) = phutil_http_parameter_pair($key, $value); + + if ($idx === null) { + $this->query[] = array($key, $value); + } else { + $this->query[$idx] = array($key, $value); + } + + return $this; + } + + private function initializeQueryParams($uri, array $params) { + $have_params = array(); + foreach ($this->query as $pair) { + list($key) = $pair; + $have_params[$key] = true; + } + + foreach ($params as $key => $value) { + if (isset($have_params[$key])) { + throw new InvalidArgumentException( + pht( + 'You are trying to construct an ambiguous URI: query parameter '. + '"%s" is present in both the string argument ("%s") and the map '. + 'argument.', + $key, + $uri)); + } + + if ($value === null) { + continue; + } + + $this->appendQueryParam($key, $value); + } + + return $this; + } + public function setProtocol($protocol) { $this->protocol = $protocol; return $this; } public function getProtocol() { return $this->protocol; } public function setDomain($domain) { $this->domain = $domain; return $this; } public function getDomain() { return $this->domain; } public function setPort($port) { $this->port = $port; return $this; } public function getPort() { return $this->port; } public function getPortWithProtocolDefault() { static $default_ports = array( 'http' => '80', 'https' => '443', 'ssh' => '22', ); return nonempty( $this->getPort(), idx($default_ports, $this->getProtocol()), ''); } public function setPath($path) { if ($this->isGitURI()) { // Git URIs use relative paths which do not need to begin with "/". } else { if ($this->domain && strlen($path) && $path[0] !== '/') { $path = '/'.$path; } } $this->path = $path; return $this; } public function appendPath($path) { $first = strlen($path) ? $path[0] : null; $last = strlen($this->path) ? $this->path[strlen($this->path) - 1] : null; if (!$this->path) { return $this->setPath($path); } else if ($first === '/' && $last === '/') { $path = substr($path, 1); } else if ($first !== '/' && $last !== '/') { $path = '/'.$path; } $this->path .= $path; return $this; } public function getPath() { return $this->path; } public function setFragment($fragment) { $this->fragment = $fragment; return $this; } public function getFragment() { return $this->fragment; } public function setUser($user) { $this->user = $user; return $this; } public function getUser() { return $this->user; } public function setPass($pass) { $this->pass = $pass; return $this; } public function getPass() { return $this->pass; } public function alter($key, $value) { $altered = clone $this; - $altered->setQueryParam($key, $value); + $altered->replaceQueryParam($key, $value); return $altered; } public function isGitURI() { return ($this->type == self::TYPE_GIT); } public function setType($type) { if ($type == self::TYPE_URI) { $path = $this->getPath(); if (strlen($path) && ($path[0] !== '/')) { // Try to catch this here because we are not allowed to throw from // inside __toString() so we don't have a reasonable opportunity to // react properly if we catch it later. throw new Exception( pht( 'Unable to convert URI "%s" into a standard URI because the '. 'path is relative. Standard URIs can not represent relative '. 'paths.', $this)); } } $this->type = $type; return $this; } public function getType() { return $this->type; } private function isGitURIPattern($uri) { $matches = null; $ok = preg_match('(^(?P<head>[^/]+):(?P<last>(?!//).*)\z)', $uri, $matches); if (!$ok) { return false; } $head = $matches['head']; $last = $matches['last']; // If any part of this has spaces in it, it's not a Git URI. We fail here // so we fall back and don't fail more abruptly later. if (preg_match('(\s)', $head.$last)) { return false; } // If the second part only contains digits, assume we're looking at // casually specified "domain.com:123" URI, not a Git URI pointed at an // entirely numeric relative path. if (preg_match('(^\d+\z)', $last)) { return false; } // If the first part has a "." or an "@" in it, interpret it as a domain // or a "user@host" string. if (preg_match('([.@])', $head)) { return true; } // Otherwise, interpret the URI conservatively as a "javascript:"-style // URI. This means that "localhost:path" is parsed as a normal URI instead // of a Git URI, but we can't tell which the user intends and it's safer // to treat it as a normal URI. return false; } } diff --git a/src/parser/__tests__/PhutilURITestCase.php b/src/parser/__tests__/PhutilURITestCase.php index 6db7627..c9c881c 100644 --- a/src/parser/__tests__/PhutilURITestCase.php +++ b/src/parser/__tests__/PhutilURITestCase.php @@ -1,278 +1,417 @@ <?php /** * Test cases for @{class:PhutilURI} parser. */ final class PhutilURITestCase extends PhutilTestCase { public function testURIParsing() { $uri = new PhutilURI('http://user:pass@host:99/path/?query=value#fragment'); $this->assertEqual('http', $uri->getProtocol(), pht('protocol')); $this->assertEqual('user', $uri->getUser(), pht('user')); $this->assertEqual('pass', $uri->getPass(), pht('password')); $this->assertEqual('host', $uri->getDomain(), pht('domain')); $this->assertEqual('99', $uri->getPort(), pht('port')); $this->assertEqual('/path/', $uri->getPath(), pht('path')); $this->assertEqual( array( - 'query' => 'value', + array( + 'query', + 'value', + ), ), - $uri->getQueryParams(), + $uri->getQueryParamsAsPairList(), 'query params'); $this->assertEqual('fragment', $uri->getFragment(), pht('fragment')); $this->assertEqual( 'http://user:pass@host:99/path/?query=value#fragment', (string)$uri, 'uri'); $uri = new PhutilURI('ssh://git@example.com/example/example.git'); $this->assertEqual('ssh', $uri->getProtocol(), pht('protocol')); $this->assertEqual('git', $uri->getUser(), pht('user')); $this->assertEqual('', $uri->getPass(), pht('password')); $this->assertEqual('example.com', $uri->getDomain(), pht('domain')); $this->assertEqual('', $uri->getPort(), 'port'); $this->assertEqual('/example/example.git', $uri->getPath(), pht('path')); $this->assertEqual( array(), - $uri->getQueryParams(), + $uri->getQueryParamsAsPairList(), pht('query parameters')); $this->assertEqual('', $uri->getFragment(), pht('fragment')); $this->assertEqual( 'ssh://git@example.com/example/example.git', (string)$uri, 'uri'); $uri = new PhutilURI('http://0@domain.com/'); $this->assertEqual('0', $uri->getUser()); $this->assertEqual('http://0@domain.com/', (string)$uri); $uri = new PhutilURI('http://0:0@domain.com/'); $this->assertEqual('0', $uri->getUser()); $this->assertEqual('0', $uri->getPass()); $this->assertEqual('http://0:0@domain.com/', (string)$uri); $uri = new PhutilURI('http://%20:%20@domain.com/'); $this->assertEqual(' ', $uri->getUser()); $this->assertEqual(' ', $uri->getPass()); $this->assertEqual('http://%20:%20@domain.com/', (string)$uri); $uri = new PhutilURI('http://%40:%40@domain.com/'); $this->assertEqual('@', $uri->getUser()); $this->assertEqual('@', $uri->getPass()); $this->assertEqual('http://%40:%40@domain.com/', (string)$uri); $uri = new PhutilURI('http://%2F:%2F@domain.com/'); $this->assertEqual('/', $uri->getUser()); $this->assertEqual('/', $uri->getPass()); $this->assertEqual('http://%2F:%2F@domain.com/', (string)$uri); // These tests are covering cases where cURL and parse_url() behavior // may differ in potentially dangerous ways. See T6755 for discussion. // In general, we defuse these attacks by emitting URIs which escape // special characters so that they are interpreted unambiguously by // cURL in the same way that parse_url() interpreted them. $uri = new PhutilURI('http://u:p@evil.com?@good.com'); $this->assertEqual('u', $uri->getUser()); $this->assertEqual('p', $uri->getPass()); $this->assertEqual('evil.com', $uri->getDomain()); $this->assertEqual('http://u:p@evil.com?%40good.com=', (string)$uri); // The behavior of URLs in these forms differs for different versions // of cURL, PHP, and other software. Because safe parsing is a tricky // proposition and these URIs are almost certainly malicious, we just // reject them. See T12526 for discussion. $dangerous = array( // Ambiguous encoding. 'http://good.com#u:p@evil.com/' => true, 'http://good.com?u:p@evil.com/' => true, // Unambiguous encoding: with a trailing slash. 'http://good.com/#u:p@evil.com/' => false, 'http://good.com/?u:p@evil.com/' => false, // Unambiguous encoding: with escaping. 'http://good.com%23u:p@evil.com/' => false, 'http://good.com%40u:p@evil.com/' => false, ); foreach ($dangerous as $input => $expect) { $caught = null; try { new PhutilURI($input); } catch (Exception $ex) { $caught = $ex; } $this->assertEqual( $expect, ($caught instanceof $ex), pht('Unexpected parse result for dangerous URI "%s".', $input)); } $uri = new PhutilURI('www.example.com'); $this->assertEqual('', $uri->getProtocol()); $this->assertEqual('www.example.com', (string)$uri); } public function testURIGeneration() { $uri = new PhutilURI('http://example.com'); $uri->setPath('bar'); $this->assertEqual('http://example.com/bar', $uri->__toString()); } public function testStrictURIParsingOfHosts() { $uri = new PhutilURI('http://&/'); $this->assertEqual('', $uri->getDomain()); // See T12961 for more discussion of these hosts which begin with "-". $uri = new PhutilURI('ssh://-oProxyCommand/'); $this->assertEqual('', $uri->getDomain()); $uri = new PhutilURI('ssh://-oProxyCommand=curl/'); $this->assertEqual('', $uri->getDomain()); $uri = new PhutilURI('ssh://.com/'); $this->assertEqual('', $uri->getDomain()); // Make sure newlines are rejected. $uri = new PhutilURI("ssh://example.com\n.domain.us/"); $this->assertEqual('', $uri->getDomain()); $uri = new PhutilURI("ssh://example.com\n"); $this->assertEqual('', $uri->getDomain()); } public function testStrictURIParsingOfLeadingWhitespace() { $uri = new PhutilURI(' http://example.com/'); $this->assertEqual('', $uri->getDomain()); } public function testAppendPath() { $uri = new PhutilURI('http://example.com'); $uri->appendPath('foo'); $this->assertEqual('http://example.com/foo', $uri->__toString()); $uri->appendPath('bar'); $this->assertEqual('http://example.com/foo/bar', $uri->__toString()); $uri = new PhutilURI('http://example.com'); $uri->appendPath('/foo/'); $this->assertEqual('http://example.com/foo/', $uri->__toString()); $uri->appendPath('/bar/'); $this->assertEqual('http://example.com/foo/bar/', $uri->__toString()); $uri = new PhutilURI('http://example.com'); $uri->appendPath('foo'); $this->assertEqual('http://example.com/foo', $uri->__toString()); $uri->appendPath('/bar/'); $this->assertEqual('http://example.com/foo/bar/', $uri->__toString()); } public function testUnusualURIs() { $uri = new PhutilURI('file:///path/to/file'); $this->assertEqual('file', $uri->getProtocol(), pht('protocol')); $this->assertEqual('', $uri->getDomain(), pht('domain')); $this->assertEqual('/path/to/file', $uri->getPath(), pht('path')); $uri = new PhutilURI('idea://open?x=/'); $this->assertEqual('idea', $uri->getProtocol(), pht('protocol')); $this->assertEqual('open', $uri->getDomain(), pht('domain')); $this->assertEqual('', $uri->getPath(), pht('path')); $this->assertEqual( array( - 'x' => '/', + array( + 'x', + '/', + ), ), - $uri->getQueryParams()); + $uri->getQueryParamsAsPairList()); // This is not a legitimate URI and should not parse as one. $uri = new PhutilURI('fruit.list: apple banana cherry'); $this->assertEqual('', $uri->getDomain()); } public function testAmbiguousURIs() { // It's important that this be detected as a Javascript URI, because that // is how browsers will treat it. $uri = new PhutilURI('javascript:evil'); $this->assertEqual('javascript', $uri->getProtocol()); // This is "wrong", in that the user probably intends for this to be a // Git-style URI, but we can not easily parse it as one without making the // "javascript" case above unsafe. $uri = new PhutilURI('localhost:todo.txt'); $this->assertEqual('localhost', $uri->getProtocol()); // These variants are unambiguous and safe. $uri = new PhutilURI('localhost.com:todo.txt'); $this->assertEqual('localhost.com', $uri->getDomain()); $uri = new PhutilURI('user@localhost:todo.txt'); $this->assertEqual('localhost', $uri->getDomain()); // This could either be a Git URI with relative path "22", or a normal URI // with port "22". We should assume it is a port number because this is // relatively common, while relative Git URIs pointing at numeric filenames // are bizarre. $uri = new PhutilURI('domain.com:22'); $this->assertEqual('domain.com', $uri->getDomain()); $this->assertEqual('22', $uri->getPort()); } public function testDefaultPorts() { $uri = new PhutilURI('http://www.example.com'); $this->assertEqual('80', $uri->getPortWithProtocolDefault()); $uri = new PhutilURI('https://www.example.com'); $this->assertEqual('443', $uri->getPortWithProtocolDefault()); $uri = new PhutilURI('ssh://git@example.com/example/example.git'); $this->assertEqual('22', $uri->getPortWithProtocolDefault()); $uri = new PhutilURI('unknown://www.example.com'); $this->assertEqual('', $uri->getPortWithProtocolDefault()); } public function testGitURIParsing() { $uri = new PhutilURI('git@host.com:path/to/something'); $this->assertEqual('ssh', $uri->getProtocol()); $this->assertEqual('git', $uri->getUser()); $this->assertEqual('host.com', $uri->getDomain()); $this->assertEqual('path/to/something', $uri->getPath()); $this->assertEqual('git@host.com:path/to/something', (string)$uri); $uri = new PhutilURI('host.com:path/to/something'); $this->assertEqual('ssh', $uri->getProtocol()); $this->assertEqual('', $uri->getUser()); $this->assertEqual('host.com', $uri->getDomain()); $this->assertEqual('path/to/something', $uri->getPath()); $this->assertEqual('host.com:path/to/something', (string)$uri); $uri_1 = new PhutilURI('host.com:path/to/something'); $uri_2 = new PhutilURI($uri_1); $this->assertEqual((string)$uri_1, (string)$uri_2); } public function testStrictGitURIParsingOfLeadingWhitespace() { $uri = new PhutilURI(' user@example.com:path'); $this->assertEqual('', $uri->getDomain()); } public function testNoRelativeURIPaths() { $uri = new PhutilURI('user@example.com:relative_path'); $caught = null; try { $uri->setType(PhutilURI::TYPE_URI); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue($caught instanceof Exception); } + public function testDuplicateKeys() { + $uri = new PhutilURI('http://www.example.com/?x=1&x=2'); + $this->assertEqual( + 'http://www.example.com/?x=1&x=2', + (string)$uri); + + $uri->appendQueryParam('x', '3'); + $this->assertEqual( + 'http://www.example.com/?x=1&x=2&x=3', + (string)$uri); + + $uri->replaceQueryParam('x', '4'); + $this->assertEqual( + 'http://www.example.com/?x=4', + (string)$uri); + + $uri->removeQueryParam('x'); + $this->assertEqual( + 'http://www.example.com/', + (string)$uri); + + $uri->appendQueryParam('a', 'a'); + $uri->appendQueryParam('b', 'b'); + $uri->appendQueryParam('c', 'c'); + $uri->appendQueryParam('b', 'd'); + + $this->assertEqual( + 'http://www.example.com/?a=a&b=b&c=c&b=d', + (string)$uri); + + $uri->replaceQueryParam('b', 'e'); + $this->assertEqual( + 'http://www.example.com/?a=a&c=c&b=e', + (string)$uri, + pht( + 'Replacing a parameter should overwrite other instances of the key.')); + } + + public function testBadHTTPParameters() { + $uri = new PhutilURI('http://www.example.com/'); + + $caught = null; + try { + $uri->replaceQueryParam(array(), 'x'); + } catch (Exception $ex) { + $caught = $ex; + } + + $this->assertTrue( + (bool)$caught, + pht('Nonscalar HTTP keys should throw.')); + + $caught = null; + try { + $uri->replaceQueryParam('x', array()); + } catch (Exception $ex) { + $caught = $ex; + } + + $this->assertTrue( + (bool)$caught, + pht('Nonscalar HTTP values should throw.')); + } + + public function testHTTPParameterTypes() { + // Whether you pass an integer or string, "0" should always be the same + // query parameter. + + $uri = new PhutilURI('http://www.example.com/'); + + $uri->appendQueryParam(0, 'a'); + $uri->appendQueryParam('0', 'b'); + $this->assertEqual( + 'http://www.example.com/?0=a&0=b', + (string)$uri); + + $uri->replaceQueryParam(0, 'c'); + $this->assertEqual( + 'http://www.example.com/?0=c', + (string)$uri); + + $uri->replaceQueryParam(0, 'a'); + $uri->appendQueryParam('0', 'b'); + $this->assertEqual( + 'http://www.example.com/?0=a&0=b', + (string)$uri); + + $uri->replaceQueryParam('0', 'c'); + $this->assertEqual( + 'http://www.example.com/?0=c', + (string)$uri); + } + + public function testGetQueryParamsAsMap() { + $uri = new PhutilURI('http://www.example.com/?x=1&x=2'); + + $caught = null; + try { + $map = $uri->getQueryParamsAsMap(); + } catch (Exception $ex) { + $caught = $ex; + } + + $this->assertTrue((bool)$caught); + } + + public function testQueryURIConstruction() { + $uri = new PhutilURI('http://example.com/', array('y' => '1')); + $this->assertEqual( + 'http://example.com/?y=1', + (string)$uri); + + $uri = new PhutilURI('http://example.com/?x=2', array('y' => '1')); + $this->assertEqual( + 'http://example.com/?x=2&y=1', + (string)$uri); + + $caught = null; + try { + $uri = new PhutilURI('http://example.com/?y=3', array('y' => '1')); + } catch (InvalidArgumentException $ex) { + $caught = $ex; + } + $this->assertTrue((bool)$caught); + + $uri = new PhutilURI('http://example.com/?a=1', array('b' => '2')); + $uri = new PhutilURI($uri, array('c' => '3')); + + $this->assertEqual( + 'http://example.com/?a=1&b=2&c=3', + (string)$uri); + } + } diff --git a/src/parser/argument/PhutilArgumentSpellingCorrector.php b/src/parser/argument/PhutilArgumentSpellingCorrector.php index 8652598..dd99912 100644 --- a/src/parser/argument/PhutilArgumentSpellingCorrector.php +++ b/src/parser/argument/PhutilArgumentSpellingCorrector.php @@ -1,132 +1,155 @@ <?php final class PhutilArgumentSpellingCorrector extends Phobject { private $editDistanceMatrix; private $maximumDistance; + private $mode; + + const MODE_COMMANDS = 'commands'; + const MODE_FLAGS = 'flags'; /** * Build a new corrector with parameters for correcting commands, like * fixing "dfif" into "diff" in "arc diff". * * @return PhutilArgumentSpellingCorrector Configured corrector. */ public static function newCommandCorrector() { // When correcting argument spelling, we're relatively liberal about // selecting alternatives and allow multiple mistakes. $max_distance = 2; // Adjust to the scaled edit costs we use below, so "2" roughly means // "2 edits". $max_distance = $max_distance * 3; // These costs are somewhat made up, but the theory is that it is far more // likely you will mis-strike a key ("lans" for "land") or press two keys // out of order ("alnd" for "land") than omit keys or press extra keys. $matrix = id(new PhutilEditDistanceMatrix()) ->setInsertCost(4) ->setDeleteCost(4) ->setReplaceCost(3) ->setTransposeCost(2); return id(new self()) ->setEditDistanceMatrix($matrix) + ->setMode(self::MODE_COMMANDS) ->setMaximumDistance($max_distance); } /** * Build a new corrector with parameters for correcting flags, like * fixing "--nolint" into "--no-lint". * * @return PhutilArgumentSpellingCorrector Configured corrector. */ public static function newFlagCorrector() { // When correcting flag spelling, we're stricter than we are when // correcting command spelling: we allow only one inserted or deleted // character. It is mainly to handle cases like "--no-lint" versus // "--nolint" or "--reviewer" versus "--reviewers". $max_distance = 1; $matrix = id(new PhutilEditDistanceMatrix()) ->setInsertCost(1) ->setDeleteCost(1) ->setReplaceCost(10); return id(new self()) ->setEditDistanceMatrix($matrix) + ->setMode(self::MODE_FLAGS) ->setMaximumDistance($max_distance); } + public function setMode($mode) { + $this->mode = $mode; + return $this; + } + + public function getMode() { + return $this->mode; + } + public function setEditDistanceMatrix(PhutilEditDistanceMatrix $matrix) { $this->editDistanceMatrix = $matrix; return $this; } public function getEditDistanceMatrix() { return $this->editDistanceMatrix; } public function setMaximumDistance($maximum_distance) { $this->maximumDistance = $maximum_distance; return $this; } public function getMaximumDistance() { return $this->maximumDistance; } public function correctSpelling($input, array $options) { $matrix = $this->getEditDistanceMatrix(); if (!$matrix) { throw new PhutilInvalidStateException('setEditDistanceMatrix'); } $max_distance = $this->getMaximumDistance(); if (!$max_distance) { throw new PhutilInvalidStateException('setMaximumDistance'); } + // If we're correcting commands, never correct an input which begins + // with "-", since this is almost certainly intended to be a flag. + if ($this->getMode() === self::MODE_COMMANDS) { + if (preg_match('/^-/', $input)) { + return array(); + } + } + $input = $this->normalizeString($input); foreach ($options as $key => $option) { $options[$key] = $this->normalizeString($option); } $distances = array(); $inputv = phutil_utf8v($input); foreach ($options as $option) { $optionv = phutil_utf8v($option); $matrix->setSequences($optionv, $inputv); $distances[$option] = $matrix->getEditDistance(); } asort($distances); $best = min($max_distance, head($distances)); foreach ($distances as $option => $distance) { if ($distance > $best) { unset($distances[$option]); } } // Before filtering, check if we have multiple equidistant matches and // return them if we do. This prevents us from, e.g., matching "alnd" with // both "land" and "amend", then dropping "land" for being too short, and // incorrectly completing to "amend". if (count($distances) > 1) { return array_keys($distances); } foreach ($distances as $option => $distance) { if (phutil_utf8_strlen($option) < $distance) { unset($distances[$option]); } } return array_keys($distances); } private function normalizeString($string) { return phutil_utf8_strtolower($string); } } diff --git a/src/symbols/PhutilSymbolLoader.php b/src/symbols/PhutilSymbolLoader.php index 1c8fccf..cdf2336 100644 --- a/src/symbols/PhutilSymbolLoader.php +++ b/src/symbols/PhutilSymbolLoader.php @@ -1,414 +1,413 @@ <?php /** * Query and load Phutil classes, interfaces and functions. * * `PhutilSymbolLoader` is a query object which selects symbols which satisfy * certain criteria, and optionally loads them. For instance, to load all * classes in a library: * * ```lang=php * $symbols = id(new PhutilSymbolLoader()) * ->setType('class') * ->setLibrary('example') * ->selectAndLoadSymbols(); * ``` * * When you execute the loading query, it returns a dictionary of matching * symbols: * * ```lang=php * array( * 'class$Example' => array( * 'type' => 'class', * 'name' => 'Example', * 'library' => 'libexample', * 'where' => 'examples/example.php', * ), * // ... more ... * ); * ``` * * The **library** and **where** keys show where the symbol is defined. The * **type** and **name** keys identify the symbol itself. * * NOTE: This class must not use libphutil functions, including @{function:id} * and @{function:idx}. * * @task config Configuring the Query * @task load Loading Symbols * @task internal Internals */ final class PhutilSymbolLoader { private $type; private $library; private $base; private $name; private $concrete; private $pathPrefix; private $suppressLoad; /** * Select the type of symbol to load, either `class`, `function` or * `interface`. * * @param string Type of symbol to load. * @return this * * @task config */ public function setType($type) { $this->type = $type; return $this; } /** * Restrict the symbol query to a specific library; only symbols from this * library will be loaded. * * @param string Library name. * @return this * * @task config */ public function setLibrary($library) { // Validate the library name; this throws if the library in not loaded. $bootloader = PhutilBootloader::getInstance(); $bootloader->getLibraryRoot($library); $this->library = $library; return $this; } /** * Restrict the symbol query to a specific path prefix; only symbols defined * in files below that path will be selected. * * @param string Path relative to library root, like "apps/cheese/". * @return this * * @task config */ public function setPathPrefix($path) { $this->pathPrefix = str_replace(DIRECTORY_SEPARATOR, '/', $path); return $this; } /** * Restrict the symbol query to a single symbol name, e.g. a specific class * or function name. * * @param string Symbol name. * @return this * * @task config */ public function setName($name) { $this->name = $name; return $this; } /** * Restrict the symbol query to only descendants of some class. This will * strictly select descendants, the base class will not be selected. This * implies loading only classes. * * @param string Base class name. * @return this * * @task config */ public function setAncestorClass($base) { $this->base = $base; return $this; } /** * Restrict the symbol query to only concrete symbols; this will filter out * abstract classes. * * NOTE: This currently causes class symbols to load, even if you run * @{method:selectSymbolsWithoutLoading}. * * @param bool True if the query should load only concrete symbols. * @return this * * @task config */ public function setConcreteOnly($concrete) { $this->concrete = $concrete; return $this; } /* -( Load )--------------------------------------------------------------- */ /** * Execute the query and select matching symbols, then load them so they can * be used. * * @return dict A dictionary of matching symbols. See top-level class * documentation for details. These symbols will be loaded * and available. * * @task load */ public function selectAndLoadSymbols() { $map = array(); $bootloader = PhutilBootloader::getInstance(); if ($this->library) { $libraries = array($this->library); } else { $libraries = $bootloader->getAllLibraries(); } if ($this->type) { $types = array($this->type); } else { $types = array( 'class', 'function', ); } $names = null; if ($this->base) { $names = $this->selectDescendantsOf( $bootloader->getClassTree(), $this->base); } $symbols = array(); foreach ($libraries as $library) { $map = $bootloader->getLibraryMap($library); foreach ($types as $type) { if ($type == 'interface') { $lookup_map = $map['class']; } else { $lookup_map = $map[$type]; } // As an optimization, we filter the list of candidate symbols in // several passes, applying a name-based filter first if possible since // it is highly selective and guaranteed to match at most one symbol. // This is the common case and we land here through `__autoload()` so // it's worthwhile to micro-optimize a bit because this code path is // very hot and we save 5-10ms per page for a very moderate increase in // complexity. if ($this->name) { // If we have a name filter, just pick the matching name out if it // exists. if (isset($lookup_map[$this->name])) { $filtered_map = array( $this->name => $lookup_map[$this->name], ); } else { $filtered_map = array(); } } else if ($names !== null) { $filtered_map = array(); foreach ($names as $name => $ignored) { if (isset($lookup_map[$name])) { $filtered_map[$name] = $lookup_map[$name]; } } } else { // Otherwise, start with everything. $filtered_map = $lookup_map; } if ($this->pathPrefix) { $len = strlen($this->pathPrefix); foreach ($filtered_map as $name => $where) { if (strncmp($where, $this->pathPrefix, $len) !== 0) { unset($filtered_map[$name]); } } } foreach ($filtered_map as $name => $where) { $symbols[$type.'$'.$name] = array( 'type' => $type, 'name' => $name, 'library' => $library, 'where' => $where, ); } } } if (!$this->suppressLoad) { $caught = null; foreach ($symbols as $symbol) { try { $this->loadSymbol($symbol); } catch (Exception $ex) { $caught = $ex; } } if ($caught) { // NOTE: We try to load everything even if we fail to load something, // primarily to make it possible to remove functions from a libphutil // library without breaking library startup. throw $caught; } } if ($this->concrete) { // Remove 'abstract' classes. foreach ($symbols as $key => $symbol) { if ($symbol['type'] == 'class') { $reflection = new ReflectionClass($symbol['name']); if ($reflection->isAbstract()) { unset($symbols[$key]); } } } } return $symbols; } /** * Execute the query and select matching symbols, but do not load them. This * will perform slightly better if you are only interested in the existence * of the symbols and don't plan to use them; otherwise, use * @{method:selectAndLoadSymbols}. * * @return dict A dictionary of matching symbols. See top-level class * documentation for details. * * @task load */ public function selectSymbolsWithoutLoading() { $this->suppressLoad = true; $result = $this->selectAndLoadSymbols(); $this->suppressLoad = false; return $result; } /** * Select symbols matching the query and then instantiate them, returning * concrete objects. This is a convenience method which simplifies symbol * handling if you are only interested in building objects. * * If you want to do more than build objects, or want to build objects with * varying constructor arguments, use @{method:selectAndLoadSymbols} for * fine-grained control over results. * * This method implicitly restricts the query to match only concrete * classes. * * @param list<wild> List of constructor arguments. * @return map<string, object> Map of class names to constructed objects. */ public function loadObjects(array $argv = array()) { $symbols = $this ->setConcreteOnly(true) ->setType('class') ->selectAndLoadSymbols(); $objects = array(); foreach ($symbols as $symbol) { $objects[$symbol['name']] = newv($symbol['name'], $argv); } return $objects; } /* -( Internals )---------------------------------------------------------- */ /** * @task internal */ private function selectDescendantsOf(array $tree, $root) { $result = array(); if (empty($tree[$root])) { // No known descendants. return array(); } foreach ($tree[$root] as $child) { $result[$child] = true; if (!empty($tree[$child])) { $result += $this->selectDescendantsOf($tree, $child); } } return $result; } /** * @task internal */ private function loadSymbol(array $symbol_spec) { // Check if we've already loaded the symbol; bail if we have. $name = $symbol_spec['name']; $is_function = ($symbol_spec['type'] == 'function'); if ($is_function) { if (function_exists($name)) { return; } } else { if (class_exists($name, false) || interface_exists($name, false)) { return; } } $lib_name = $symbol_spec['library']; $where = $symbol_spec['where']; $bootloader = PhutilBootloader::getInstance(); $bootloader->loadLibrarySource($lib_name, $where); // Check that we successfully loaded the symbol from wherever it was // supposed to be defined. $load_failed = null; if ($is_function) { if (!function_exists($name)) { - $load_failed = pht('function'); + $load_failed = 'function'; } } else { if (!class_exists($name, false) && !interface_exists($name, false)) { - $load_failed = pht('class or interface'); + $load_failed = 'class/interface'; } } if ($load_failed !== null) { $lib_path = phutil_get_library_root($lib_name); throw new PhutilMissingSymbolException( $name, $load_failed, pht( - "the symbol map for library '%s' (at '%s') claims this %s is ". - "defined in '%s', but loading that source file did not cause the ". - "%s to become defined.", + 'The symbol map for library "%s" (at "%s") claims this symbol '. + '(of type "%s") is defined in "%s", but loading that source file '. + 'did not cause the symbol to become defined.', $lib_name, $lib_path, $load_failed, - $where, - $load_failed)); + $where)); } } } diff --git a/src/symbols/exception/PhutilMissingSymbolException.php b/src/symbols/exception/PhutilMissingSymbolException.php index 2265173..f1fc626 100644 --- a/src/symbols/exception/PhutilMissingSymbolException.php +++ b/src/symbols/exception/PhutilMissingSymbolException.php @@ -1,26 +1,28 @@ <?php final class PhutilMissingSymbolException extends Exception { public function __construct($symbol, $type, $reason) { parent::__construct( pht( - "Failed to load %s '%s': %s\n\n". - "If you are not a developer, this almost always means that a library ". - "is out of date. For example, you may have upgraded `phabricator` ". - "without upgrading `libphutil`, or vice versa. It might also mean ". - "that you need to restart Apache or PHP-FPM. Make sure all libraries ". - "are up to date and all services have been restarted.\n\n". - "If you are a developer and this symbol was recently added or moved, ". - "your library map may need to be rebuilt. You can rebuild the map by ". - "running '%s'. For more information, see:\n\n". - "%s", + 'Failed to load %s "%s".'. + "\n\n". + '%s'. + "\n\n". + 'If you are not a developer, this almost always means that a library '. + 'is out of date. For example, you may have upgraded "phabricator/" '. + 'without upgrading "libphutil/", or vice versa. It might also mean '. + 'that you need to restart Apache or PHP-FPM. Make sure all libraries '. + 'are up to date and all services have been restarted.'. + "\n\n". + 'If you are a developer and this symbol was recently added or '. + 'moved, your library map may need to be rebuilt. You can rebuild '. + 'the map by running "arc liberate".'. + "\n\n". + 'For more information, see: https://phurl.io/newclasses', $type, $symbol, - $reason, - 'arc liberate', - 'https://secure.phabricator.com/book/phabcontrib/article/'. - 'adding_new_classes/')); + $reason)); } } diff --git a/src/utils/__tests__/PhutilUtilsTestCase.php b/src/utils/__tests__/PhutilUtilsTestCase.php index 5128255..530babc 100644 --- a/src/utils/__tests__/PhutilUtilsTestCase.php +++ b/src/utils/__tests__/PhutilUtilsTestCase.php @@ -1,885 +1,969 @@ <?php /** * Test cases for functions in utils.php. */ final class PhutilUtilsTestCase extends PhutilTestCase { public function testMFilterNullMethodThrowException() { $caught = null; try { mfilter(array(), null); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue($caught instanceof InvalidArgumentException); } public function testMFilterWithEmptyValueFiltered() { $a = new MFilterTestHelper('o', 'p', 'q'); $b = new MFilterTestHelper('o', '', 'q'); $c = new MFilterTestHelper('o', 'p', 'q'); $list = array( 'a' => $a, 'b' => $b, 'c' => $c, ); $actual = mfilter($list, 'getI'); $expected = array( 'a' => $a, 'c' => $c, ); $this->assertEqual($expected, $actual); } public function testMFilterWithEmptyValueNegateFiltered() { $a = new MFilterTestHelper('o', 'p', 'q'); $b = new MFilterTestHelper('o', '', 'q'); $c = new MFilterTestHelper('o', 'p', 'q'); $list = array( 'a' => $a, 'b' => $b, 'c' => $c, ); $actual = mfilter($list, 'getI', true); $expected = array( 'b' => $b, ); $this->assertEqual($expected, $actual); } public function testIFilterInvalidIndexThrowException() { $caught = null; try { ifilter(array(), null); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue($caught instanceof InvalidArgumentException); } public function testIFilterWithEmptyValueFiltered() { $list = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), 'c' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'd' => array('h' => 'o', 'i' => 0, 'j' => 'q'), 'e' => array('h' => 'o', 'i' => null, 'j' => 'q'), 'f' => array('h' => 'o', 'i' => false, 'j' => 'q'), ); $actual = ifilter($list, 'i'); $expected = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'c' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), ); $this->assertEqual($expected, $actual); } public function testIFilterIndexNotExistsAllFiltered() { $list = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), ); $actual = ifilter($list, 'NoneExisting'); $expected = array(); $this->assertEqual($expected, $actual); } public function testIFilterWithEmptyValueNegateFiltered() { $list = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), 'c' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'd' => array('h' => 'o', 'i' => 0, 'j' => 'q'), 'e' => array('h' => 'o', 'i' => null, 'j' => 'q'), 'f' => array('h' => 'o', 'i' => false, 'j' => 'q'), ); $actual = ifilter($list, 'i', true); $expected = array( 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), 'd' => array('h' => 'o', 'i' => 0, 'j' => 'q'), 'e' => array('h' => 'o', 'i' => null, 'j' => 'q'), 'f' => array('h' => 'o', 'i' => false, 'j' => 'q'), ); $this->assertEqual($expected, $actual); } public function testIFilterIndexNotExistsNotFiltered() { $list = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), ); $actual = ifilter($list, 'NoneExisting', true); $expected = array( 'a' => array('h' => 'o', 'i' => 'p', 'j' => 'q'), 'b' => array('h' => 'o', 'i' => '', 'j' => 'q'), ); $this->assertEqual($expected, $actual); } public function testmergevMergingBasicallyWorksCorrectly() { $this->assertEqual( array(), array_mergev( array( // <empty> ))); $this->assertEqual( array(), array_mergev( array( array(), array(), array(), ))); $this->assertEqual( array(1, 2, 3, 4, 5), array_mergev( array( array(1, 2), array(3), array(), array(4, 5), ))); $not_valid = array( 'scalar' => array(1), 'array plus scalar' => array(array(), 1), 'null' => array(null), ); foreach ($not_valid as $key => $invalid_input) { $caught = null; try { array_mergev($invalid_input); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue( ($caught instanceof InvalidArgumentException), pht('%s invalid on %s', 'array_mergev()', $key)); } } public function testNonempty() { $this->assertEqual( 'zebra', nonempty(false, null, 0, '', array(), 'zebra')); $this->assertEqual( null, nonempty()); $this->assertEqual( false, nonempty(null, false)); $this->assertEqual( null, nonempty(false, null)); } protected function tryAssertInstancesOfArray($input) { assert_instances_of($input, 'array'); } protected function tryAssertInstancesOfStdClass($input) { assert_instances_of($input, 'stdClass'); } public function testAssertInstancesOf() { $object = new stdClass(); $inputs = array( 'empty' => array(), 'stdClass' => array($object, $object), __CLASS__ => array($object, $this), 'array' => array(array(), array()), 'integer' => array($object, 1), ); $this->tryTestCases( $inputs, array(true, true, false, false, false), array($this, 'tryAssertInstancesOfStdClass'), 'InvalidArgumentException'); $this->tryTestCases( $inputs, array(true, false, false, true, false), array($this, 'tryAssertInstancesOfArray'), 'InvalidArgumentException'); } + public function testAssertSameKeys() { + $cases = array( + array(true, array(), array()), + array(true, array(0), array(1)), + + array(false, array(0), array()), + array(false, array(), array(0)), + + array(false, array('a' => 1), array('b' => 1)), + + // Make sure "null" values survive "isset()" tests. + array(true, array('a' => 1), array('a' => null)), + + // Key order should not matter. + array(true, array('a' => 1, 'b' => 1), array('b' => 1, 'a' => 1)), + ); + + foreach ($cases as $case) { + list($same_keys, $expect, $input) = $case; + + $caught = null; + try { + assert_same_keys($expect, $input); + } catch (InvalidArgumentException $ex) { + $caught = $ex; + } + + $this->assertEqual($same_keys, ($caught === null)); + } + } + public function testAssertStringLike() { $this->assertEqual( null, assert_stringlike(null)); $this->assertEqual( null, assert_stringlike('')); $this->assertEqual( null, assert_stringlike('Hello World')); $this->assertEqual( null, assert_stringlike(1)); $this->assertEqual( null, assert_stringlike(9.9999)); $this->assertEqual( null, assert_stringlike(true)); $obj = new Exception('.'); $this->assertEqual( null, assert_stringlike($obj)); $obj = (object)array(); try { assert_stringlike($obj); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue($caught instanceof InvalidArgumentException); $array = array( 'foo' => 'bar', 'bar' => 'foo', ); try { assert_stringlike($array); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue($caught instanceof InvalidArgumentException); $tmp = new TempFile(); $resource = fopen($tmp, 'r'); try { assert_stringlike($resource); } catch (InvalidArgumentException $ex) { $caught = $ex; } fclose($resource); $this->assertTrue($caught instanceof InvalidArgumentException); } public function testCoalesce() { $this->assertEqual( 'zebra', coalesce(null, 'zebra')); $this->assertEqual( null, coalesce()); $this->assertEqual( false, coalesce(false, null)); $this->assertEqual( false, coalesce(null, false)); } public function testHeadLast() { $this->assertEqual( 'a', head(explode('.', 'a.b'))); $this->assertEqual( 'b', last(explode('.', 'a.b'))); } public function testHeadKeyLastKey() { $this->assertEqual( 'a', head_key(array('a' => 0, 'b' => 1))); $this->assertEqual( 'b', last_key(array('a' => 0, 'b' => 1))); $this->assertEqual(null, head_key(array())); $this->assertEqual(null, last_key(array())); } public function testID() { $this->assertEqual(true, id(true)); $this->assertEqual(false, id(false)); } public function testIdx() { $array = array( 'present' => true, 'null' => null, ); $this->assertEqual(true, idx($array, 'present')); $this->assertEqual(true, idx($array, 'present', false)); $this->assertEqual(null, idx($array, 'null')); $this->assertEqual(null, idx($array, 'null', false)); $this->assertEqual(null, idx($array, 'missing')); $this->assertEqual(false, idx($array, 'missing', false)); } public function testSplitLines() { $retain_cases = array( '' => array(''), 'x' => array('x'), "x\n" => array("x\n"), "\n" => array("\n"), "\n\n\n" => array("\n", "\n", "\n"), "\r\n" => array("\r\n"), "x\r\ny\n" => array("x\r\n", "y\n"), "x\ry\nz\r\n" => array("x\ry\n", "z\r\n"), "x\ry\nz\r\n\n" => array("x\ry\n", "z\r\n", "\n"), ); foreach ($retain_cases as $input => $expect) { $this->assertEqual( $expect, phutil_split_lines($input, $retain_endings = true), pht('(Retained) %s', addcslashes($input, "\r\n\\"))); } $discard_cases = array( '' => array(''), 'x' => array('x'), "x\n" => array('x'), "\n" => array(''), "\n\n\n" => array('', '', ''), "\r\n" => array(''), "x\r\ny\n" => array('x', 'y'), "x\ry\nz\r\n" => array("x\ry", 'z'), "x\ry\nz\r\n\n" => array("x\ry", 'z', ''), ); foreach ($discard_cases as $input => $expect) { $this->assertEqual( $expect, phutil_split_lines($input, $retain_endings = false), pht('(Discarded) %s', addcslashes($input, "\r\n\\"))); } } public function testArrayFuse() { $this->assertEqual(array(), array_fuse(array())); $this->assertEqual(array('x' => 'x'), array_fuse(array('x'))); } public function testArrayInterleave() { $this->assertEqual(array(), array_interleave('x', array())); $this->assertEqual(array('y'), array_interleave('x', array('y'))); $this->assertEqual( array('y', 'x', 'z'), array_interleave('x', array('y', 'z'))); $this->assertEqual( array('y', 'x', 'z'), array_interleave( 'x', array( 'kangaroo' => 'y', 'marmoset' => 'z', ))); $obj1 = (object)array(); $obj2 = (object)array(); $this->assertEqual( array($obj1, $obj2, $obj1, $obj2, $obj1), array_interleave( $obj2, array( $obj1, $obj1, $obj1, ))); $implode_tests = array( '' => array(1, 2, 3), 'x' => array(1, 2, 3), 'y' => array(), 'z' => array(1), ); foreach ($implode_tests as $x => $y) { $this->assertEqual( implode('', array_interleave($x, $y)), implode($x, $y)); } } public function testLoggableString() { $this->assertEqual( '', phutil_loggable_string('')); $this->assertEqual( "a\\nb", phutil_loggable_string("a\nb")); $this->assertEqual( "a\\x01b", phutil_loggable_string("a\x01b")); $this->assertEqual( "a\\x1Fb", phutil_loggable_string("a\x1Fb")); } public function testPhutilUnits() { $cases = array( '0 seconds in seconds' => 0, '1 second in seconds' => 1, '2 seconds in seconds' => 2, '100 seconds in seconds' => 100, '2 minutes in seconds' => 120, '1 hour in seconds' => 3600, '1 day in seconds' => 86400, '3 days in seconds' => 259200, '128 bits in bytes' => 16, '1 byte in bytes' => 1, '8 bits in bytes' => 1, + '1 minute in milliseconds' => 60000, + '2 minutes in microseconds' => 120000000, ); foreach ($cases as $input => $expect) { $this->assertEqual( $expect, phutil_units($input), 'phutil_units("'.$input.'")'); } $bad_cases = array( 'quack', '3 years in seconds', - '1 minute in milliseconds', '1 day in days', '-1 minutes in seconds', '1.5 minutes in seconds', '7 bits in bytes', '2 hours in bytes', '1 dram in bytes', '24 bits in seconds', ); foreach ($bad_cases as $input) { $caught = null; try { phutil_units($input); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertTrue( ($caught instanceof InvalidArgumentException), 'phutil_units("'.$input.'")'); } } public function testPhutilJSONDecode() { $valid_cases = array( '{}' => array(), '[]' => array(), '[1, 2]' => array(1, 2), '{"a":"b"}' => array('a' => 'b'), ); foreach ($valid_cases as $input => $expect) { $result = phutil_json_decode($input); $this->assertEqual($expect, $result, 'phutil_json_decode('.$input.')'); } $invalid_cases = array( '', '"a"', '{,}', 'null', '"null"', ); foreach ($invalid_cases as $input) { $caught = null; try { phutil_json_decode($input); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue($caught instanceof PhutilJSONParserException); } } public function testPhutilINIDecode() { // Skip the test if we are using an older version of PHP that doesn't // have the `parse_ini_string` function. try { phutil_ini_decode(''); } catch (PhutilMethodNotImplementedException $ex) { $this->assertSkipped($ex->getMessage()); } $valid_cases = array( '' => array(), 'foo=' => array('foo' => ''), 'foo=bar' => array('foo' => 'bar'), 'foo = bar' => array('foo' => 'bar'), "foo = bar\n" => array('foo' => 'bar'), "foo\nbar = baz" => array('bar' => 'baz'), "[foo]\nbar = baz" => array('foo' => array('bar' => 'baz')), "[foo]\n[bar]\nbaz = foo" => array( 'foo' => array(), 'bar' => array('baz' => 'foo'), ), "[foo]\nbar = baz\n\n[bar]\nbaz = foo" => array( 'foo' => array('bar' => 'baz'), 'bar' => array('baz' => 'foo'), ), "; Comment\n[foo]\nbar = baz" => array('foo' => array('bar' => 'baz')), "# Comment\n[foo]\nbar = baz" => array('foo' => array('bar' => 'baz')), "foo = true\n[bar]\nbaz = false" => array('foo' => true, 'bar' => array('baz' => false)), "foo = 1\nbar = 1.234" => array('foo' => 1, 'bar' => 1.234), 'x = {"foo": "bar"}' => array('x' => '{"foo": "bar"}'), ); foreach ($valid_cases as $input => $expect) { $result = phutil_ini_decode($input); $this->assertEqual($expect, $result, 'phutil_ini_decode('.$input.')'); } $invalid_cases = array( '[' => new PhutilINIParserException(), ); foreach ($invalid_cases as $input => $expect) { $caught = null; try { phutil_ini_decode($input); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue($caught instanceof $expect); } } public function testCensorCredentials() { $cases = array( '' => '', 'abc' => 'abc', // NOTE: We're liberal about censoring here, since we can't tell // if this is a truncated password at the end of an input string // or a domain name. The version with a "/" isn't censored. 'http://example.com' => 'http://********', 'http://example.com/' => 'http://example.com/', 'http://username@example.com' => 'http://********@example.com', 'http://user:pass@example.com' => 'http://********@example.com', // We censor these because they might be truncated credentials at the end // of the string. 'http://user' => 'http://********', "http://user\n" => "http://********\n", 'svn+ssh://user:pass@example.com' => 'svn+ssh://********@example.com', ); foreach ($cases as $input => $expect) { $this->assertEqual( $expect, phutil_censor_credentials($input), pht('Credential censoring for: %s', $input)); } } public function testVarExport() { // Constants $this->assertEqual('null', phutil_var_export(null)); $this->assertEqual('true', phutil_var_export(true)); $this->assertEqual('false', phutil_var_export(false)); $this->assertEqual("'quack'", phutil_var_export('quack')); $this->assertEqual('1234567', phutil_var_export(1234567)); // Arrays $this->assertEqual( 'array()', phutil_var_export(array())); $this->assertEqual( implode("\n", array( 'array(', ' 1,', ' 2,', ' 3,', ')', )), phutil_var_export(array(1, 2, 3))); $this->assertEqual( implode("\n", array( 'array(', " 'foo' => 'bar',", " 'bar' => 'baz',", ')', )), phutil_var_export(array('foo' => 'bar', 'bar' => 'baz'))); $this->assertEqual( implode("\n", array( 'array(', " 'foo' => array(", " 'bar' => array(", " 'baz' => array(),", ' ),', ' ),', ')', )), phutil_var_export( array('foo' => array('bar' => array('baz' => array()))))); - // Objects - $this->assertEqual( - "stdClass::__set_state(array(\n))", - phutil_var_export(new stdClass())); - $this->assertEqual( - "PhutilTestPhobject::__set_state(array(\n))", - phutil_var_export(new PhutilTestPhobject())); + // NOTE: Object behavior differs across PHP versions. Older versions of + // PHP export objects as "stdClass::__set_state(array())". Newer versions + // of PHP (7.3+) export objects as "(object) array()". } public function testFnmatch() { $cases = array( '' => array( array(''), array('.', '/'), ), '*' => array( array('file'), array('dir/', '/dir'), ), '**' => array( array('file', 'dir/', '/dir', 'dir/subdir/file'), array(), ), '**/file' => array( array('file', 'dir/file', 'dir/subdir/file', 'dir/subdir/subdir/file'), array('file/', 'file/dir'), ), 'file.*' => array( array('file.php', 'file.a', 'file.'), array('files.php', 'file.php/blah'), ), 'fo?' => array( array('foo', 'fot'), array('fooo', 'ffoo', 'fo/', 'foo/'), ), 'fo{o,t}' => array( array('foo', 'fot'), array('fob', 'fo/', 'foo/'), ), 'fo{o,\\,}' => array( array('foo', 'fo,'), array('foo/', 'fo,/'), ), 'fo{o,\\\\}' => array( array('foo', 'fo\\'), array('foo/', 'fo\\/'), ), '/foo' => array( array('/foo'), array('foo', '/foo/'), ), // Tests for various `fnmatch` flags. '*.txt' => array( array( 'file.txt', // FNM_PERIOD '.secret-file.txt', ), array( // FNM_PATHNAME 'dir/file.txt', // FNM_CASEFOLD 'file.TXT', ), '\\*.txt' => array( array( // FNM_NOESCAPE '*.txt', ), array( 'file.txt', ), ), ), ); $invalid = array( '{', 'asdf\\', ); foreach ($cases as $input => $expect) { list($matches, $no_matches) = $expect; foreach ($matches as $match) { $this->assertTrue( phutil_fnmatch($input, $match), pht('Expecting "%s" to match "%s".', $input, $match)); } foreach ($no_matches as $no_match) { $this->assertFalse( phutil_fnmatch($input, $no_match), pht('Expecting "%s" not to match "%s".', $input, $no_match)); } } foreach ($invalid as $input) { $caught = null; try { phutil_fnmatch($input, ''); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue($caught instanceof InvalidArgumentException); } } public function testJSONEncode() { $in = array( 'example' => "Not Valid UTF8: \x80", ); $caught = null; try { $value = phutil_json_encode($in); } catch (Exception $ex) { $caught = $ex; } $this->assertTrue(($caught instanceof Exception)); } public function testHashComparisons() { $tests = array( array('1', '12', false), array('0', '0e123', false), array('0e123', '0e124', false), array('', '0', false), array('000', '0e0', false), array('001', '002', false), array('0', '', false), array('987654321', '123456789', false), array('A', 'a', false), array('123456789', '123456789', true), array('hunter42', 'hunter42', true), ); foreach ($tests as $key => $test) { list($u, $v, $expect) = $test; $actual = phutil_hashes_are_identical($u, $v); $this->assertEqual( $expect, $actual, pht('Test Case: "%s" vs "%s"', $u, $v)); } } public function testVectorSortInt() { $original = array( ~PHP_INT_MAX, -2147483648, -5, -3, -1, 0, 1, 2, 3, 100, PHP_INT_MAX, ); $items = $this->shuffleMap($original); foreach ($items as $key => $value) { $items[$key] = (string)id(new PhutilSortVector()) ->addInt($value); } asort($items, SORT_STRING); $this->assertEqual( array_keys($original), array_keys($items)); } public function testVectorSortString() { $original = array( '', "\1", 'A', 'AB', 'Z', "Z\1", 'ZZZ', ); $items = $this->shuffleMap($original); foreach ($items as $key => $value) { $items[$key] = (string)id(new PhutilSortVector()) ->addString($value); } asort($items, SORT_STRING); $this->assertEqual( array_keys($original), array_keys($items)); } private function shuffleMap(array $map) { $keys = array_keys($map); shuffle($keys); return array_select_keys($map, $keys); } + public function testQueryStringEncoding() { + $expect = array(); + + // As a starting point, we expect every character to encode as an "%XX" + // escaped version. + foreach (range(0, 255) as $byte) { + $c = chr($byte); + $expect[$c] = sprintf('%%%02X', $byte); + } + + // We expect these characters to not be escaped. + $ranges = array( + range('a', 'z'), + range('A', 'Z'), + range('0', '9'), + array('-', '.', '_', '~'), + ); + + foreach ($ranges as $range) { + foreach ($range as $preserve_char) { + $expect[$preserve_char] = $preserve_char; + } + } + + foreach (range(0, 255) as $byte) { + $c = chr($byte); + + $expect_c = $expect[$c]; + $expect_str = "{$expect_c}={$expect_c}"; + + $actual_str = phutil_build_http_querystring(array($c => $c)); + + $this->assertEqual( + $expect_str, + $actual_str, + pht('HTTP querystring for byte "%s".', sprintf('0x%02x', $byte))); + } + } + + public function testNaturalList() { + $cases = array( + array(true, array()), + array(true, array(0 => true, 1 => true, 2 => true)), + array(true, array('a', 'b', 'c')), + array(false, array(0 => true, 2 => true, 1 => true)), + array(false, array(1 => true)), + array(false, array('sound' => 'quack')), + ); + + foreach ($cases as $case) { + list($expect, $value) = $case; + $this->assertEqual($expect, phutil_is_natural_list($value)); + } + } + + } diff --git a/src/utils/utils.php b/src/utils/utils.php index 4164e6f..c326d50 100644 --- a/src/utils/utils.php +++ b/src/utils/utils.php @@ -1,1539 +1,1828 @@ <?php /** * Identity function, returns its argument unmodified. * * This is useful almost exclusively as a workaround to an oddity in the PHP * grammar -- this is a syntax error: * * COUNTEREXAMPLE * new Thing()->doStuff(); * * ...but this works fine: * * id(new Thing())->doStuff(); * * @param wild Anything. * @return wild Unmodified argument. */ function id($x) { return $x; } /** * Access an array index, retrieving the value stored there if it exists or * a default if it does not. This function allows you to concisely access an * index which may or may not exist without raising a warning. * * @param array Array to access. * @param scalar Index to access in the array. * @param wild Default value to return if the key is not present in the * array. * @return wild If `$array[$key]` exists, that value is returned. If not, * $default is returned without raising a warning. */ function idx(array $array, $key, $default = null) { // isset() is a micro-optimization - it is fast but fails for null values. if (isset($array[$key])) { return $array[$key]; } // Comparing $default is also a micro-optimization. if ($default === null || array_key_exists($key, $array)) { return null; } return $default; } /** * Access a sequence of array indexes, retrieving a deeply nested value if * it exists or a default if it does not. * * For example, `idxv($dict, array('a', 'b', 'c'))` accesses the key at * `$dict['a']['b']['c']`, if it exists. If it does not, or any intermediate * value is not itself an array, it returns the defualt value. * * @param array Array to access. * @param list<string> List of keys to access, in sequence. * @param wild Default value to return. * @return wild Accessed value, or default if the value is not accessible. */ function idxv(array $map, array $path, $default = null) { if (!$path) { return $default; } $last = last($path); $path = array_slice($path, 0, -1); $cursor = $map; foreach ($path as $key) { $cursor = idx($cursor, $key); if (!is_array($cursor)) { return $default; } } return idx($cursor, $last, $default); } /** * Call a method on a list of objects. Short for "method pull", this function * works just like @{function:ipull}, except that it operates on a list of * objects instead of a list of arrays. This function simplifies a common type * of mapping operation: * * COUNTEREXAMPLE * $names = array(); * foreach ($objects as $key => $object) { * $names[$key] = $object->getName(); * } * * You can express this more concisely with mpull(): * * $names = mpull($objects, 'getName'); * * mpull() takes a third argument, which allows you to do the same but for * the array's keys: * * COUNTEREXAMPLE * $names = array(); * foreach ($objects as $object) { * $names[$object->getID()] = $object->getName(); * } * * This is the mpull version(): * * $names = mpull($objects, 'getName', 'getID'); * * If you pass ##null## as the second argument, the objects will be preserved: * * COUNTEREXAMPLE * $id_map = array(); * foreach ($objects as $object) { * $id_map[$object->getID()] = $object; * } * * With mpull(): * * $id_map = mpull($objects, null, 'getID'); * * See also @{function:ipull}, which works similarly but accesses array indexes * instead of calling methods. * * @param list Some list of objects. * @param string|null Determines which **values** will appear in the result * array. Use a string like 'getName' to store the * value of calling the named method in each value, or * ##null## to preserve the original objects. * @param string|null Determines how **keys** will be assigned in the result * array. Use a string like 'getID' to use the result * of calling the named method as each object's key, or * `null` to preserve the original keys. * @return dict A dictionary with keys and values derived according * to whatever you passed as `$method` and `$key_method`. */ function mpull(array $list, $method, $key_method = null) { $result = array(); foreach ($list as $key => $object) { if ($key_method !== null) { $key = $object->$key_method(); } if ($method !== null) { $value = $object->$method(); } else { $value = $object; } $result[$key] = $value; } return $result; } /** * Access a property on a list of objects. Short for "property pull", this * function works just like @{function:mpull}, except that it accesses object * properties instead of methods. This function simplifies a common type of * mapping operation: * * COUNTEREXAMPLE * $names = array(); * foreach ($objects as $key => $object) { * $names[$key] = $object->name; * } * * You can express this more concisely with ppull(): * * $names = ppull($objects, 'name'); * * ppull() takes a third argument, which allows you to do the same but for * the array's keys: * * COUNTEREXAMPLE * $names = array(); * foreach ($objects as $object) { * $names[$object->id] = $object->name; * } * * This is the ppull version(): * * $names = ppull($objects, 'name', 'id'); * * If you pass ##null## as the second argument, the objects will be preserved: * * COUNTEREXAMPLE * $id_map = array(); * foreach ($objects as $object) { * $id_map[$object->id] = $object; * } * * With ppull(): * * $id_map = ppull($objects, null, 'id'); * * See also @{function:mpull}, which works similarly but calls object methods * instead of accessing object properties. * * @param list Some list of objects. * @param string|null Determines which **values** will appear in the result * array. Use a string like 'name' to store the value of * accessing the named property in each value, or * `null` to preserve the original objects. * @param string|null Determines how **keys** will be assigned in the result * array. Use a string like 'id' to use the result of * accessing the named property as each object's key, or * `null` to preserve the original keys. * @return dict A dictionary with keys and values derived according * to whatever you passed as `$property` and * `$key_property`. */ function ppull(array $list, $property, $key_property = null) { $result = array(); foreach ($list as $key => $object) { if ($key_property !== null) { $key = $object->$key_property; } if ($property !== null) { $value = $object->$property; } else { $value = $object; } $result[$key] = $value; } return $result; } /** * Choose an index from a list of arrays. Short for "index pull", this function * works just like @{function:mpull}, except that it operates on a list of * arrays and selects an index from them instead of operating on a list of * objects and calling a method on them. * * This function simplifies a common type of mapping operation: * * COUNTEREXAMPLE * $names = array(); * foreach ($list as $key => $dict) { * $names[$key] = $dict['name']; * } * * With ipull(): * * $names = ipull($list, 'name'); * * See @{function:mpull} for more usage examples. * * @param list Some list of arrays. * @param scalar|null Determines which **values** will appear in the result * array. Use a scalar to select that index from each * array, or null to preserve the arrays unmodified as * values. * @param scalar|null Determines which **keys** will appear in the result * array. Use a scalar to select that index from each * array, or null to preserve the array keys. * @return dict A dictionary with keys and values derived according * to whatever you passed for `$index` and `$key_index`. */ function ipull(array $list, $index, $key_index = null) { $result = array(); foreach ($list as $key => $array) { if ($key_index !== null) { $key = $array[$key_index]; } if ($index !== null) { $value = $array[$index]; } else { $value = $array; } $result[$key] = $value; } return $result; } /** * Group a list of objects by the result of some method, similar to how * GROUP BY works in an SQL query. This function simplifies grouping objects * by some property: * * COUNTEREXAMPLE * $animals_by_species = array(); * foreach ($animals as $animal) { * $animals_by_species[$animal->getSpecies()][] = $animal; * } * * This can be expressed more tersely with mgroup(): * * $animals_by_species = mgroup($animals, 'getSpecies'); * * In either case, the result is a dictionary which maps species (e.g., like * "dog") to lists of animals with that property, so all the dogs are grouped * together and all the cats are grouped together, or whatever super * businessesey thing is actually happening in your problem domain. * * See also @{function:igroup}, which works the same way but operates on * array indexes. * * @param list List of objects to group by some property. * @param string Name of a method, like 'getType', to call on each object * in order to determine which group it should be placed into. * @param ... Zero or more additional method names, to subgroup the * groups. * @return dict Dictionary mapping distinct method returns to lists of * all objects which returned that value. */ function mgroup(array $list, $by /* , ... */) { $map = mpull($list, $by); $groups = array(); foreach ($map as $group) { // Can't array_fill_keys() here because 'false' gets encoded wrong. $groups[$group] = array(); } foreach ($map as $key => $group) { $groups[$group][$key] = $list[$key]; } $args = func_get_args(); $args = array_slice($args, 2); if ($args) { array_unshift($args, null); foreach ($groups as $group_key => $grouped) { $args[0] = $grouped; $groups[$group_key] = call_user_func_array('mgroup', $args); } } return $groups; } /** * Group a list of arrays by the value of some index. This function is the same * as @{function:mgroup}, except it operates on the values of array indexes * rather than the return values of method calls. * * @param list List of arrays to group by some index value. * @param string Name of an index to select from each array in order to * determine which group it should be placed into. * @param ... Zero or more additional indexes names, to subgroup the * groups. * @return dict Dictionary mapping distinct index values to lists of * all objects which had that value at the index. */ function igroup(array $list, $by /* , ... */) { $map = ipull($list, $by); $groups = array(); foreach ($map as $group) { $groups[$group] = array(); } foreach ($map as $key => $group) { $groups[$group][$key] = $list[$key]; } $args = func_get_args(); $args = array_slice($args, 2); if ($args) { array_unshift($args, null); foreach ($groups as $group_key => $grouped) { $args[0] = $grouped; $groups[$group_key] = call_user_func_array('igroup', $args); } } return $groups; } /** * Sort a list of objects by the return value of some method. In PHP, this is * often vastly more efficient than `usort()` and similar. * * // Sort a list of Duck objects by name. * $sorted = msort($ducks, 'getName'); * * It is usually significantly more efficient to define an ordering method * on objects and call `msort()` than to write a comparator. It is often more * convenient, as well. * * NOTE: This method does not take the list by reference; it returns a new list. * * @param list List of objects to sort by some property. * @param string Name of a method to call on each object; the return values * will be used to sort the list. * @return list Objects ordered by the return values of the method calls. */ function msort(array $list, $method) { $surrogate = mpull($list, $method); asort($surrogate); $result = array(); foreach ($surrogate as $key => $value) { $result[$key] = $list[$key]; } return $result; } /** * Sort a list of objects by a sort vector. * * This sort is stable, well-behaved, and more efficient than `usort()`. * * @param list List of objects to sort. * @param string Name of a method to call on each object. The method must * return a @{class:PhutilSortVector}. * @return list Objects ordered by the vectors. */ function msortv(array $list, $method) { $surrogate = mpull($list, $method); $index = 0; foreach ($surrogate as $key => $value) { if (!($value instanceof PhutilSortVector)) { throw new Exception( pht( 'Objects passed to "%s" must return sort vectors (objects of '. 'class "%s") from the specified method ("%s"). One object (with '. 'key "%s") did not.', 'msortv()', 'PhutilSortVector', $method, $key)); } // Add the original index to keep the sort stable. $value->addInt($index++); $surrogate[$key] = (string)$value; } asort($surrogate, SORT_STRING); $result = array(); foreach ($surrogate as $key => $value) { $result[$key] = $list[$key]; } return $result; } /** * Sort a list of arrays by the value of some index. This method is identical to * @{function:msort}, but operates on a list of arrays instead of a list of * objects. * * @param list List of arrays to sort by some index value. * @param string Index to access on each object; the return values * will be used to sort the list. * @return list Arrays ordered by the index values. */ function isort(array $list, $index) { $surrogate = ipull($list, $index); asort($surrogate); $result = array(); foreach ($surrogate as $key => $value) { $result[$key] = $list[$key]; } return $result; } /** * Filter a list of objects by executing a method across all the objects and * filter out the ones with empty() results. this function works just like * @{function:ifilter}, except that it operates on a list of objects instead * of a list of arrays. * * For example, to remove all objects with no children from a list, where * 'hasChildren' is a method name, do this: * * mfilter($list, 'hasChildren'); * * The optional third parameter allows you to negate the operation and filter * out nonempty objects. To remove all objects that DO have children, do this: * * mfilter($list, 'hasChildren', true); * * @param array List of objects to filter. * @param string A method name. * @param bool Optionally, pass true to drop objects which pass the * filter instead of keeping them. * @return array List of objects which pass the filter. */ function mfilter(array $list, $method, $negate = false) { if (!is_string($method)) { throw new InvalidArgumentException(pht('Argument method is not a string.')); } $result = array(); foreach ($list as $key => $object) { $value = $object->$method(); if (!$negate) { if (!empty($value)) { $result[$key] = $object; } } else { if (empty($value)) { $result[$key] = $object; } } } return $result; } /** * Filter a list of arrays by removing the ones with an empty() value for some * index. This function works just like @{function:mfilter}, except that it * operates on a list of arrays instead of a list of objects. * * For example, to remove all arrays without value for key 'username', do this: * * ifilter($list, 'username'); * * The optional third parameter allows you to negate the operation and filter * out nonempty arrays. To remove all arrays that DO have value for key * 'username', do this: * * ifilter($list, 'username', true); * * @param array List of arrays to filter. * @param scalar The index. * @param bool Optionally, pass true to drop arrays which pass the * filter instead of keeping them. * @return array List of arrays which pass the filter. */ function ifilter(array $list, $index, $negate = false) { if (!is_scalar($index)) { throw new InvalidArgumentException(pht('Argument index is not a scalar.')); } $result = array(); if (!$negate) { foreach ($list as $key => $array) { if (!empty($array[$index])) { $result[$key] = $array; } } } else { foreach ($list as $key => $array) { if (empty($array[$index])) { $result[$key] = $array; } } } return $result; } /** * Selects a list of keys from an array, returning a new array with only the * key-value pairs identified by the selected keys, in the specified order. * * Note that since this function orders keys in the result according to the * order they appear in the list of keys, there are effectively two common * uses: either reducing a large dictionary to a smaller one, or changing the * key order on an existing dictionary. * * @param dict Dictionary of key-value pairs to select from. * @param list List of keys to select. * @return dict Dictionary of only those key-value pairs where the key was * present in the list of keys to select. Ordering is * determined by the list order. */ function array_select_keys(array $dict, array $keys) { $result = array(); foreach ($keys as $key) { if (array_key_exists($key, $dict)) { $result[$key] = $dict[$key]; } } return $result; } /** * Checks if all values of array are instances of the passed class. Throws * `InvalidArgumentException` if it isn't true for any value. * * @param array * @param string Name of the class or 'array' to check arrays. * @return array Returns passed array. */ function assert_instances_of(array $arr, $class) { $is_array = !strcasecmp($class, 'array'); foreach ($arr as $key => $object) { if ($is_array) { if (!is_array($object)) { $given = gettype($object); throw new InvalidArgumentException( pht( "Array item with key '%s' must be of type array, %s given.", $key, $given)); } } else if (!($object instanceof $class)) { $given = gettype($object); if (is_object($object)) { $given = pht('instance of %s', get_class($object)); } throw new InvalidArgumentException( pht( "Array item with key '%s' must be an instance of %s, %s given.", $key, $class, $given)); } } return $arr; } +/** + * Assert that two arrays have the exact same keys, in any order. + * + * @param map Array with expected keys. + * @param map Array with actual keys. + * @return void + */ +function assert_same_keys(array $expect, array $actual) { + foreach ($expect as $key => $value) { + if (isset($actual[$key]) || array_key_exists($key, $actual)) { + continue; + } + + throw new InvalidArgumentException( + pht( + 'Expected to find key "%s", but it is not present.', + $key)); + + } + + foreach ($actual as $key => $value) { + if (isset($expect[$key]) || array_key_exists($key, $expect)) { + continue; + } + + throw new InvalidArgumentException( + pht( + 'Found unexpected surplus key "%s" where no such key was expected.', + $key)); + } +} + /** * Assert that passed data can be converted to string. * * @param string Assert that this data is valid. * @return void * * @task assert */ function assert_stringlike($parameter) { switch (gettype($parameter)) { case 'string': case 'NULL': case 'boolean': case 'double': case 'integer': return; case 'object': if (method_exists($parameter, '__toString')) { return; } break; case 'array': case 'resource': case 'unknown type': default: break; } throw new InvalidArgumentException( pht( 'Argument must be scalar or object which implements %s!', '__toString()')); } /** * Returns the first argument which is not strictly null, or `null` if there * are no such arguments. Identical to the MySQL function of the same name. * * @param ... Zero or more arguments of any type. * @return mixed First non-`null` arg, or null if no such arg exists. */ function coalesce(/* ... */) { $args = func_get_args(); foreach ($args as $arg) { if ($arg !== null) { return $arg; } } return null; } /** * Similar to @{function:coalesce}, but less strict: returns the first * non-`empty()` argument, instead of the first argument that is strictly * non-`null`. If no argument is nonempty, it returns the last argument. This * is useful idiomatically for setting defaults: * * $display_name = nonempty($user_name, $full_name, "Anonymous"); * * @param ... Zero or more arguments of any type. * @return mixed First non-`empty()` arg, or last arg if no such arg * exists, or null if you passed in zero args. */ function nonempty(/* ... */) { $args = func_get_args(); $result = null; foreach ($args as $arg) { $result = $arg; if ($arg) { break; } } return $result; } /** * Invokes the "new" operator with a vector of arguments. There is no way to * `call_user_func_array()` on a class constructor, so you can instead use this * function: * * $obj = newv($class_name, $argv); * * That is, these two statements are equivalent: * * $pancake = new Pancake('Blueberry', 'Maple Syrup', true); * $pancake = newv('Pancake', array('Blueberry', 'Maple Syrup', true)); * * DO NOT solve this problem in other, more creative ways! Three popular * alternatives are: * * - Build a fake serialized object and unserialize it. * - Invoke the constructor twice. * - just use `eval()` lol * * These are really bad solutions to the problem because they can have side * effects (e.g., __wakeup()) and give you an object in an otherwise impossible * state. Please endeavor to keep your objects in possible states. * * If you own the classes you're doing this for, you should consider whether * or not restructuring your code (for instance, by creating static * construction methods) might make it cleaner before using `newv()`. Static * constructors can be invoked with `call_user_func_array()`, and may give your * class a cleaner and more descriptive API. * * @param string The name of a class. * @param list Array of arguments to pass to its constructor. * @return obj A new object of the specified class, constructed by passing * the argument vector to its constructor. */ function newv($class_name, array $argv) { $reflector = new ReflectionClass($class_name); if ($argv) { return $reflector->newInstanceArgs($argv); } else { return $reflector->newInstance(); } } /** * Returns the first element of an array. Exactly like reset(), but doesn't * choke if you pass it some non-referenceable value like the return value of * a function. * * @param array Array to retrieve the first element from. * @return wild The first value of the array. */ function head(array $arr) { return reset($arr); } /** * Returns the last element of an array. This is exactly like `end()` except * that it won't warn you if you pass some non-referencable array to * it -- e.g., the result of some other array operation. * * @param array Array to retrieve the last element from. * @return wild The last value of the array. */ function last(array $arr) { return end($arr); } /** * Returns the first key of an array. * * @param array Array to retrieve the first key from. * @return int|string The first key of the array. */ function head_key(array $arr) { reset($arr); return key($arr); } /** * Returns the last key of an array. * * @param array Array to retrieve the last key from. * @return int|string The last key of the array. */ function last_key(array $arr) { end($arr); return key($arr); } /** * Merge a vector of arrays performantly. This has the same semantics as * array_merge(), so these calls are equivalent: * * array_merge($a, $b, $c); * array_mergev(array($a, $b, $c)); * * However, when you have a vector of arrays, it is vastly more performant to * merge them with this function than by calling array_merge() in a loop, * because using a loop generates an intermediary array on each iteration. * * @param list Vector of arrays to merge. * @return list Arrays, merged with array_merge() semantics. */ function array_mergev(array $arrayv) { if (!$arrayv) { return array(); } foreach ($arrayv as $key => $item) { if (!is_array($item)) { throw new InvalidArgumentException( pht( 'Expected all items passed to `%s` to be arrays, but '. 'argument with key "%s" has type "%s".', __FUNCTION__.'()', $key, gettype($item))); } } return call_user_func_array('array_merge', $arrayv); } /** * Split a corpus of text into lines. This function splits on "\n", "\r\n", or * a mixture of any of them. * * NOTE: This function does not treat "\r" on its own as a newline because none * of SVN, Git or Mercurial do on any OS. * * @param string Block of text to be split into lines. * @param bool If true, retain line endings in result strings. * @return list List of lines. */ function phutil_split_lines($corpus, $retain_endings = true) { if (!strlen($corpus)) { return array(''); } // Split on "\r\n" or "\n". if ($retain_endings) { $lines = preg_split('/(?<=\n)/', $corpus); } else { $lines = preg_split('/\r?\n/', $corpus); } // If the text ends with "\n" or similar, we'll end up with an empty string // at the end; discard it. if (end($lines) == '') { array_pop($lines); } if ($corpus instanceof PhutilSafeHTML) { return array_map('phutil_safe_html', $lines); } return $lines; } /** * Simplifies a common use of `array_combine()`. Specifically, this: * * COUNTEREXAMPLE: * if ($list) { * $result = array_combine($list, $list); * } else { * // Prior to PHP 5.4, array_combine() failed if given empty arrays. * $result = array(); * } * * ...is equivalent to this: * * $result = array_fuse($list); * * @param list List of scalars. * @return dict Dictionary with inputs mapped to themselves. */ function array_fuse(array $list) { if ($list) { return array_combine($list, $list); } return array(); } /** * Add an element between every two elements of some array. That is, given a * list `A, B, C, D`, and some element to interleave, `x`, this function returns * `A, x, B, x, C, x, D`. This works like `implode()`, but does not concatenate * the list into a string. In particular: * * implode('', array_interleave($x, $list)); * * ...is equivalent to: * * implode($x, $list); * * This function does not preserve keys. * * @param wild Element to interleave. * @param list List of elements to be interleaved. * @return list Original list with the new element interleaved. */ function array_interleave($interleave, array $array) { $result = array(); foreach ($array as $item) { $result[] = $item; $result[] = $interleave; } array_pop($result); return $result; } function phutil_is_windows() { // We can also use PHP_OS, but that's kind of sketchy because it returns // "WINNT" for Windows 7 and "Darwin" for Mac OS X. Practically, testing for // DIRECTORY_SEPARATOR is more straightforward. return (DIRECTORY_SEPARATOR != '/'); } function phutil_is_hiphop_runtime() { return (array_key_exists('HPHP', $_ENV) && $_ENV['HPHP'] === 1); } /** * Converts a string to a loggable one, with unprintables and newlines escaped. * * @param string Any string. * @return string String with control and newline characters escaped, suitable * for printing on a single log line. */ function phutil_loggable_string($string) { if (preg_match('/^[\x20-\x7E]+$/', $string)) { return $string; } $result = ''; static $c_map = array( '\\' => '\\\\', "\n" => '\\n', "\r" => '\\r', "\t" => '\\t', ); $len = strlen($string); for ($ii = 0; $ii < $len; $ii++) { $c = $string[$ii]; if (isset($c_map[$c])) { $result .= $c_map[$c]; } else { $o = ord($c); if ($o < 0x20 || $o == 0x7F) { $result .= '\\x'.sprintf('%02X', $o); } else { $result .= $c; } } } return $result; } /** * Perform an `fwrite()` which distinguishes between EAGAIN and EPIPE. * * PHP's `fwrite()` is broken, and never returns `false` for writes to broken * nonblocking pipes: it always returns 0, and provides no straightforward * mechanism for distinguishing between EAGAIN (buffer is full, can't write any * more right now) and EPIPE or similar (no write will ever succeed). * * See: https://bugs.php.net/bug.php?id=39598 * * If you call this method instead of `fwrite()`, it will attempt to detect * when a zero-length write is caused by EAGAIN and return `0` only if the * write really should be retried. * * @param resource Socket or pipe stream. * @param string Bytes to write. * @return bool|int Number of bytes written, or `false` on any error (including * errors which `fwrite()` can not detect, like a broken pipe). */ function phutil_fwrite_nonblocking_stream($stream, $bytes) { if (!strlen($bytes)) { return 0; } $result = @fwrite($stream, $bytes); if ($result !== 0) { // In cases where some bytes are witten (`$result > 0`) or // an error occurs (`$result === false`), the behavior of fwrite() is // correct. We can return the value as-is. return $result; } // If we make it here, we performed a 0-length write. Try to distinguish // between EAGAIN and EPIPE. To do this, we're going to `stream_select()` // the stream, write to it again if PHP claims that it's writable, and // consider the pipe broken if the write fails. + // (Signals received signals during the "fwrite()" do not appear to affect + // anything, see D20083.) + $read = array(); $write = array($stream); $except = array(); - @stream_select($read, $write, $except, 0); + $result = @stream_select($read, $write, $except, 0); + if ($result === false) { + // See T13243. If the select is interrupted by a signal, it may return + // "false" indicating an underlying EINTR condition. In this case, the + // results (notably, "$write") are not usable because "stream_select()" + // didn't update them. + + // In this case, treat this stream as blocked and tell the caller to + // retry, since EINTR is the only condition we're currently aware of that + // can cause "fwrite()" to return "0" and "stream_select()" to return + // "false" on the same stream. + return 0; + } if (!$write) { // The stream isn't writable, so we conclude that it probably really is // blocked and the underlying error was EAGAIN. Return 0 to indicate that // no data could be written yet. return 0; } // If we make it here, PHP **just** claimed that this stream is writable, so // perform a write. If the write also fails, conclude that these failures are // EPIPE or some other permanent failure. $result = @fwrite($stream, $bytes); if ($result !== 0) { // The write worked or failed explicitly. This value is fine to return. return $result; } // We performed a 0-length write, were told that the stream was writable, and // then immediately performed another 0-length write. Conclude that the pipe // is broken and return `false`. return false; } /** * Convert a human-readable unit description into a numeric one. This function * allows you to replace this: * * COUNTEREXAMPLE * $ttl = (60 * 60 * 24 * 30); // 30 days * * ...with this: * * $ttl = phutil_units('30 days in seconds'); * * ...which is self-documenting and difficult to make a mistake with. * * @param string Human readable description of a unit quantity. * @return int Quantity of specified unit. */ function phutil_units($description) { $matches = null; if (!preg_match('/^(\d+) (\w+) in (\w+)$/', $description, $matches)) { throw new InvalidArgumentException( pht( 'Unable to parse unit specification (expected a specification in the '. 'form "%s"): %s', '5 days in seconds', $description)); } $quantity = (int)$matches[1]; $src_unit = $matches[2]; $dst_unit = $matches[3]; $is_divisor = false; switch ($dst_unit) { case 'seconds': switch ($src_unit) { case 'second': case 'seconds': $factor = 1; break; case 'minute': case 'minutes': $factor = 60; break; case 'hour': case 'hours': $factor = 60 * 60; break; case 'day': case 'days': $factor = 60 * 60 * 24; break; default: throw new InvalidArgumentException( pht( 'This function can not convert from the unit "%s".', $src_unit)); } break; + case 'bytes': switch ($src_unit) { case 'byte': case 'bytes': $factor = 1; break; case 'bit': case 'bits': $factor = 8; $is_divisor = true; break; default: throw new InvalidArgumentException( pht( 'This function can not convert from the unit "%s".', $src_unit)); } break; + + case 'milliseconds': + switch ($src_unit) { + case 'second': + case 'seconds': + $factor = 1000; + break; + case 'minute': + case 'minutes': + $factor = 1000 * 60; + break; + case 'hour': + case 'hours': + $factor = 1000 * 60 * 60; + break; + case 'day': + case 'days': + $factor = 1000 * 60 * 60 * 24; + break; + default: + throw new InvalidArgumentException( + pht( + 'This function can not convert from the unit "%s".', + $src_unit)); + } + break; + + case 'microseconds': + switch ($src_unit) { + case 'second': + case 'seconds': + $factor = 1000000; + break; + case 'minute': + case 'minutes': + $factor = 1000000 * 60; + break; + case 'hour': + case 'hours': + $factor = 1000000 * 60 * 60; + break; + case 'day': + case 'days': + $factor = 1000000 * 60 * 60 * 24; + break; + default: + throw new InvalidArgumentException( + pht( + 'This function can not convert from the unit "%s".', + $src_unit)); + } + break; + default: throw new InvalidArgumentException( pht( 'This function can not convert into the unit "%s".', $dst_unit)); } if ($is_divisor) { if ($quantity % $factor) { throw new InvalidArgumentException( pht( '"%s" is not an exact quantity.', $description)); } return (int)($quantity / $factor); } else { return $quantity * $factor; } } /** * Compute the number of microseconds that have elapsed since an earlier * timestamp (from `microtime(true)`). * * @param double Microsecond-precision timestamp, from `microtime(true)`. * @return int Elapsed microseconds. */ function phutil_microseconds_since($timestamp) { if (!is_float($timestamp)) { throw new Exception( pht( 'Argument to "phutil_microseconds_since(...)" should be a value '. 'returned from "microtime(true)".')); } $delta = (microtime(true) - $timestamp); $delta = 1000000 * $delta; $delta = (int)$delta; return $delta; } /** * Decode a JSON dictionary. * * @param string A string which ostensibly contains a JSON-encoded list or * dictionary. * @return mixed Decoded list/dictionary. */ function phutil_json_decode($string) { $result = @json_decode($string, true); if (!is_array($result)) { // Failed to decode the JSON. Try to use @{class:PhutilJSONParser} instead. // This will probably fail, but will throw a useful exception. $parser = new PhutilJSONParser(); $result = $parser->parse($string); } return $result; } /** * Encode a value in JSON, raising an exception if it can not be encoded. * * @param wild A value to encode. * @return string JSON representation of the value. */ function phutil_json_encode($value) { $result = @json_encode($value); if ($result === false) { $reason = phutil_validate_json($value); if (function_exists('json_last_error')) { $err = json_last_error(); if (function_exists('json_last_error_msg')) { $msg = json_last_error_msg(); $extra = pht('#%d: %s', $err, $msg); } else { $extra = pht('#%d', $err); } } else { $extra = null; } if ($extra) { $message = pht( 'Failed to JSON encode value (%s): %s.', $extra, $reason); } else { $message = pht( 'Failed to JSON encode value: %s.', $reason); } throw new Exception($message); } return $result; } /** * Produce a human-readable explanation why a value can not be JSON-encoded. * * @param wild Value to validate. * @param string Path within the object to provide context. * @return string|null Explanation of why it can't be encoded, or null. */ function phutil_validate_json($value, $path = '') { if ($value === null) { return; } if ($value === true) { return; } if ($value === false) { return; } if (is_int($value)) { return; } if (is_float($value)) { return; } if (is_array($value)) { foreach ($value as $key => $subvalue) { if (strlen($path)) { $full_key = $path.' > '; } else { $full_key = ''; } if (!phutil_is_utf8($key)) { $full_key = $full_key.phutil_utf8ize($key); return pht( 'Dictionary key "%s" is not valid UTF8, and cannot be JSON encoded.', $full_key); } $full_key .= $key; $result = phutil_validate_json($subvalue, $full_key); if ($result !== null) { return $result; } } } if (is_string($value)) { if (!phutil_is_utf8($value)) { $display = substr($value, 0, 256); $display = phutil_utf8ize($display); if (!strlen($path)) { return pht( 'String value is not valid UTF8, and can not be JSON encoded: %s', $display); } else { return pht( 'Dictionary value at key "%s" is not valid UTF8, and cannot be '. 'JSON encoded: %s', $path, $display); } } } return; } /** * Decode an INI string. * * @param string * @return mixed */ function phutil_ini_decode($string) { $results = null; $trap = new PhutilErrorTrap(); try { - if (!function_exists('parse_ini_string')) { + $have_call = false; + if (function_exists('parse_ini_string')) { + if (defined('INI_SCANNER_RAW')) { + $results = @parse_ini_string($string, true, INI_SCANNER_RAW); + $have_call = true; + } + } + + if (!$have_call) { throw new PhutilMethodNotImplementedException( pht( '%s is not compatible with your version of PHP (%s). This function '. 'is only supported on PHP versions newer than 5.3.0.', __FUNCTION__, phpversion())); } - $results = @parse_ini_string($string, true, INI_SCANNER_RAW); - if ($results === false) { throw new PhutilINIParserException(trim($trap->getErrorsAsString())); } foreach ($results as $section => $result) { if (!is_array($result)) { // We JSON decode the value in ordering to perform the following // conversions: // // - `'true'` => `true` // - `'false'` => `false` // - `'123'` => `123` // - `'1.234'` => `1.234` // $result = json_decode($result, true); if ($result !== null && !is_array($result)) { $results[$section] = $result; } continue; } foreach ($result as $key => $value) { $value = json_decode($value, true); if ($value !== null && !is_array($value)) { $results[$section][$key] = $value; } } } } catch (Exception $ex) { $trap->destroy(); throw $ex; } $trap->destroy(); return $results; } /** * Attempt to censor any plaintext credentials from a string. * * The major use case here is to censor usernames and passwords from command * output. For example, when `git fetch` fails, the output includes credentials * for authenticated HTTP remotes. * * @param string Some block of text. * @return string A similar block of text, but with credentials that could * be identified censored. */ function phutil_censor_credentials($string) { return preg_replace(',(?<=://)([^/@\s]+)(?=@|$),', '********', $string); } /** * Returns a parsable string representation of a variable. * * This function is intended to behave similarly to PHP's `var_export` function, * but the output is intended to follow our style conventions. * * @param wild The variable you want to export. * @return string */ function phutil_var_export($var) { // `var_export(null, true)` returns `"NULL"` (in uppercase). if ($var === null) { return 'null'; } // PHP's `var_export` doesn't format arrays very nicely. In particular: // // - An empty array is split over two lines (`"array (\n)"`). // - A space separates "array" and the first opening brace. // - Non-associative arrays are returned as associative arrays with an // integer key. // if (is_array($var)) { if (count($var) === 0) { return 'array()'; } // Don't show keys for non-associative arrays. - $show_keys = (array_keys($var) !== range(0, count($var) - 1)); + $show_keys = !phutil_is_natural_list($var); $output = array(); $output[] = 'array('; foreach ($var as $key => $value) { // Adjust the indentation of the value. $value = str_replace("\n", "\n ", phutil_var_export($value)); $output[] = ' '. ($show_keys ? var_export($key, true).' => ' : ''). $value.','; } $output[] = ')'; return implode("\n", $output); } // Let PHP handle everything else. return var_export($var, true); } /** * An improved version of `fnmatch`. * * @param string A glob pattern. * @param string A path. * @return bool */ function phutil_fnmatch($glob, $path) { // Modify the glob to allow `**/` to match files in the root directory. $glob = preg_replace('@(?:(?<!\\\\)\\*){2}/@', '{,*/,**/}', $glob); $escaping = false; $in_curlies = 0; $regex = ''; for ($i = 0; $i < strlen($glob); $i++) { $char = $glob[$i]; $next_char = ($i < strlen($glob) - 1) ? $glob[$i + 1] : null; $escape = array('$', '(', ')', '+', '.', '^', '|'); $mapping = array(); if ($escaping) { $escape[] = '*'; $escape[] = '?'; $escape[] = '{'; } else { $mapping['*'] = $next_char === '*' ? '.*' : '[^/]*'; $mapping['?'] = '[^/]'; $mapping['{'] = '('; if ($in_curlies) { $mapping[','] = '|'; $mapping['}'] = ')'; } } if (in_array($char, $escape)) { $regex .= "\\{$char}"; } else if ($replacement = idx($mapping, $char)) { $regex .= $replacement; } else if ($char === '\\') { if ($escaping) { $regex .= '\\\\'; } $escaping = !$escaping; continue; } else { $regex .= $char; } if ($char === '{' && !$escaping) { $in_curlies++; } else if ($char === '}' && $in_curlies && !$escaping) { $in_curlies--; } $escaping = false; } if ($in_curlies || $escaping) { throw new InvalidArgumentException(pht('Invalid glob pattern.')); } $regex = '(\A'.$regex.'\z)'; return (bool)preg_match($regex, $path); } /** * Compare two hashes for equality. * * This function defuses two attacks: timing attacks and type juggling attacks. * * In a timing attack, the attacker observes that strings which match the * secret take slightly longer to fail to match because more characters are * compared. By testing a large number of strings, they can learn the secret * character by character. This defuses timing attacks by always doing the * same amount of work. * * In a type juggling attack, an attacker takes advantage of PHP's type rules * where `"0" == "0e12345"` for any exponent. A portion of of hexadecimal * hashes match this pattern and are vulnerable. This defuses this attack by * performing bytewise character-by-character comparison. * * It is questionable how practical these attacks are, but they are possible * in theory and defusing them is straightforward. * * @param string First hash. * @param string Second hash. * @return bool True if hashes are identical. */ function phutil_hashes_are_identical($u, $v) { if (!is_string($u)) { throw new Exception(pht('First hash argument must be a string.')); } if (!is_string($v)) { throw new Exception(pht('Second hash argument must be a string.')); } if (strlen($u) !== strlen($v)) { return false; } $len = strlen($v); $bits = 0; for ($ii = 0; $ii < $len; $ii++) { $bits |= (ord($u[$ii]) ^ ord($v[$ii])); } return ($bits === 0); } + + +/** + * Build a query string from a dictionary. + * + * @param map<string, string> Dictionary of parameters. + * @return string HTTP query string. + */ +function phutil_build_http_querystring(array $parameters) { + $pairs = array(); + foreach ($parameters as $key => $value) { + $pairs[] = array($key, $value); + } + + return phutil_build_http_querystring_from_pairs($pairs); +} + +/** + * Build a query string from a list of parameter pairs. + * + * @param list<pair<string, string>> List of pairs. + * @return string HTTP query string. + */ +function phutil_build_http_querystring_from_pairs(array $pairs) { + // We want to encode in RFC3986 mode, but "http_build_query()" did not get + // a flag for that mode until PHP 5.4.0. This is equivalent to calling + // "http_build_query()" with the "PHP_QUERY_RFC3986" flag. + + $query = array(); + foreach ($pairs as $pair_key => $pair) { + if (!is_array($pair) || (count($pair) !== 2)) { + throw new Exception( + pht( + 'HTTP parameter pair (with key "%s") is not valid: each pair must '. + 'be an array with exactly two elements.', + $pair_key)); + } + + list($key, $value) = $pair; + list($key, $value) = phutil_http_parameter_pair($key, $value); + $query[] = rawurlencode($key).'='.rawurlencode($value); + } + $query = implode($query, '&'); + + return $query; +} + +/** + * Typecheck and cast an HTTP key-value parameter pair. + * + * Scalar values are converted to strings. Nonscalar values raise exceptions. + * + * @param scalar HTTP parameter key. + * @param scalar HTTP parameter value. + * @return pair<string, string> Key and value as strings. + */ +function phutil_http_parameter_pair($key, $value) { + try { + assert_stringlike($key); + } catch (InvalidArgumentException $ex) { + throw new PhutilProxyException( + pht('HTTP query parameter key must be a scalar.'), + $ex); + } + + $key = phutil_string_cast($key); + + try { + assert_stringlike($value); + } catch (InvalidArgumentException $ex) { + throw new PhutilProxyException( + pht( + 'HTTP query parameter value (for key "%s") must be a scalar.', + $key), + $ex); + } + + $value = phutil_string_cast($value); + + return array($key, $value); +} + +function phutil_decode_mime_header($header) { + if (function_exists('iconv_mime_decode')) { + return iconv_mime_decode($header, 0, 'UTF-8'); + } + + if (function_exists('mb_decode_mimeheader')) { + return mb_decode_mimeheader($header); + } + + throw new Exception( + pht( + 'Unable to decode MIME header: install "iconv" or "mbstring" '. + 'extension.')); +} + +/** + * Perform a "(string)" cast without disabling standard exception behavior. + * + * When PHP invokes "__toString()" automatically, it fatals if the method + * raises an exception. In older versions of PHP (until PHP 7.1), this fatal is + * fairly opaque and does not give you any information about the exception + * itself, although newer versions of PHP at least include the exception + * message. + * + * This is documented on the "__toString()" manual page: + * + * Warning + * You cannot throw an exception from within a __toString() method. Doing + * so will result in a fatal error. + * + * However, this only applies to implicit invocation by the language runtime. + * Application code can safely call `__toString()` directly without any effect + * on exception handling behavior. Very cool. + * + * We also reject arrays. PHP casts them to the string "Array". This behavior + * is, charitably, evil. + * + * @param wild Any value which aspires to be represented as a string. + * @return string String representation of the provided value. + */ +function phutil_string_cast($value) { + if (is_array($value)) { + throw new Exception( + pht( + 'Value passed to "phutil_string_cast()" is an array; arrays can '. + 'not be sensibly cast to strings.')); + } + + if (is_object($value)) { + $string = $value->__toString(); + + if (!is_string($string)) { + throw new Exception( + pht( + 'Object (of class "%s") did not return a string from "__toString()".', + get_class($value))); + } + + return $string; + } + + return (string)$value; +} + + +/** + * Return a short, human-readable description of an object's type. + * + * This is mostly useful for raising errors like "expected x() to return a Y, + * but it returned a Z". + * + * This is similar to "get_type()", but describes objects and arrays in more + * detail. + * + * @param wild Anything. + * @return string Human-readable description of the value's type. + */ +function phutil_describe_type($value) { + return PhutilTypeSpec::getTypeOf($value); +} + + +/** + * Test if a list has the natural numbers (1, 2, 3, and so on) as keys, in + * order. + * + * @return bool True if the list is a natural list. + */ +function phutil_is_natural_list(array $list) { + $expect = 0; + + foreach ($list as $key => $item) { + if ($key !== $expect) { + return false; + } + $expect++; + } + + return true; +}