30#include "filter_private.h"
76static unsigned int php_sapi_filter(
int arg,
const char *var,
char **
val,
size_t val_len,
size_t *new_val_len);
77static unsigned int php_sapi_filter_init(
void);
94#ifdef COMPILE_DL_FILTER
105 for (i = 0; i <
size; ++i) {
137static
void php_filter_init_globals(zend_filter_globals *filter_globals)
139#if defined(COMPILE_DL_FILTER) && defined(ZTS)
161 register_filter_symbols(module_number);
179#define VAR_ARRAY_COPY_DTOR(a) \
180 if (!Z_ISUNDEF(IF_G(a))) { \
181 zval_ptr_dtor(&IF_G(a)); \
182 ZVAL_UNDEF(&IF_G(a)); \
214 for (i = 0; i <
size; ++i) {
215 if (filter_list[i].
id ==
id) {
216 return filter_list[i];
220 for (i = 0; i <
size; ++i) {
222 return filter_list[i];
226 return filter_list[0];
230static unsigned int php_sapi_filter_init(
void)
247 filter_func = php_find_filter(filter);
249 if (!filter_func.
id) {
289static unsigned int php_sapi_filter(
int arg,
const char *var,
char **
val,
size_t val_len,
size_t *new_val_len)
291 zval new_var, raw_var;
297#define PARSE_CASE(s,a,t) \
299 if (Z_ISUNDEF(IF_G(a))) { \
300 array_init(&IF_G(a)); \
302 array_ptr = &IF_G(a); \
303 orig_array_ptr = &PG(http_globals)[t]; \
347 if (orig_array_ptr) {
410 if (
PG(auto_globals_jit)) {
416 if (
PG(auto_globals_jit)) {
446 array_ptr = php_filter_get_storage(
arg);
451 if (array_ptr && zend_hash_exists(
Z_ARRVAL_P(array_ptr), var)) {
459static void php_filter_call(
467 if (!filter_args_ht) {
470 filter_flags = filter_args_long;
476 filter = filter_args_long;
480 filter = zval_get_long(option);
483 if ((option = zend_hash_str_find_deref(filter_args_ht,
"options",
sizeof(
"options") - 1)) !=
NULL) {
495 filter_flags = zval_get_long(option);
531 add_next_index_zval(filtered, &tmp);
549 if (arg_key ==
NULL) {
565 php_filter_call(&nval, -1,
599 input = php_filter_get_storage(fetch_from);
606 zval *option, *opt, *def;
607 if (!filter_args_ht) {
608 filter_flags = filter_args_long;
611 filter_flags = zval_get_long(option);
614 if ((opt = zend_hash_str_find_deref(filter_args_ht,
"options",
sizeof(
"options") - 1)) !=
NULL &&
616 (def = zend_hash_str_find_deref(
Z_ARRVAL_P(opt),
"default",
sizeof(
"default") - 1)) !=
NULL
688 array_input = php_filter_get_storage(fetch_from);
698 php_filter_array_handler(array_input, op_ht, op_long,
return_value, add_empty);
722 php_filter_array_handler(array_input, op_ht, op_long,
return_value, add_empty);
736 for (i = 0; i <
size; ++i) {
754 for (i = 0; i <
size; ++i) {
755 if (
strcmp(filter_list[i].
name, filter) == 0) {
SAPI_API int sapi_register_input_filter(unsigned int(*input_filter)(int arg, const char *var, char **val, size_t val_len, size_t *new_val_len), unsigned int(*input_filter_init)(void))
copy(string $from, string $to, $context=null)
assert(mixed $assertion, Throwable|string|null $description=null)
void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL)
zend_module_entry filter_module_entry
#define VAR_ARRAY_COPY_DTOR(a)
#define PARSE_CASE(s, a, t)
filter_input(int $type, string $var_name, int $filter=FILTER_DEFAULT, array|int $options=0)
filter_has_var(int $input_type, string $var_name)
filter_var(mixed $value, int $filter=FILTER_DEFAULT, array|int $options=0)
filter_var_array(array $array, array|int $options=FILTER_DEFAULT, bool $add_empty=true)
filter_input_array(int $type, array|int $options=FILTER_DEFAULT, bool $add_empty=true)
#define FILTER_VALIDATE_DOMAIN
#define FILTER_FLAG_NO_ENCODE_QUOTES
#define FILTER_SANITIZE_ENCODED
#define FILTER_REQUIRE_SCALAR
#define FILTER_VALIDATE_FLOAT
#define FILTER_SANITIZE_URL
#define FILTER_VALIDATE_URL
#define FILTER_SANITIZE_ADD_SLASHES
#define FILTER_VALIDATE_IP
#define FILTER_VALIDATE_INT
#define FILTER_SANITIZE_EMAIL
#define FILTER_UNSAFE_RAW
#define FILTER_VALIDATE_EMAIL
#define FILTER_VALIDATE_MAC
#define FILTER_FORCE_ARRAY
#define FILTER_VALIDATE_BOOL
#define FILTER_REQUIRE_ARRAY
#define FILTER_SANITIZE_SPECIAL_CHARS
#define FILTER_SANITIZE_FULL_SPECIAL_CHARS
#define FILTER_SANITIZE_NUMBER_INT
#define FILTER_NULL_ON_FAILURE
#define FILTER_SANITIZE_STRING
#define FILTER_SANITIZE_NUMBER_FLOAT
#define PHP_FILTER_ID_EXISTS(id)
#define FILTER_VALIDATE_REGEXP
enum entity_charset charset
void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_float(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_boolean(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_validate_domain(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_validate_regexp(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_validate_mac(PHP_INPUT_FILTER_PARAM_DECL)
PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format,...)
php_info_print_table_start()
php_info_print_table_row(2, "PDO Driver for Firebird", "enabled")
php_info_print_table_end()
#define PHP_MSHUTDOWN_FUNCTION
#define PHP_MINIT_FUNCTION
#define PHP_MINFO_FUNCTION
#define PHP_RSHUTDOWN_FUNCTION
void php_filter_special_chars(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_string(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_email(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_number_float(PHP_INPUT_FILTER_PARAM_DECL)
#define PHP_INPUT_FILTER_PARAM_DECL
void php_filter_encoded(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_full_special_chars(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_add_slashes(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_unsafe_raw(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_number_int(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_url(PHP_INPUT_FILTER_PARAM_DECL)
zend_long default_filter_flags
#define PHP_FILTER_VERSION
#define TRACK_VARS_SERVER
#define TRACK_VARS_COOKIE
#define STD_PHP_INI_ENTRY
PHP_JSON_API size_t int options
PHPAPI void php_register_variable_ex(const char *var_name, zval *val, zval *track_vars_array)
zend_function * __tostring
void(* function)(PHP_INPUT_FILTER_PARAM_DECL)
ZEND_API ZEND_COLD void zend_error(int type, const char *format,...)
#define ZEND_TSRMLS_CACHE_UPDATE()
#define ZEND_TSRMLS_CACHE_DEFINE()
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *format,...)
ZEND_API ZEND_COLD void zend_argument_type_error(uint32_t arg_num, const char *format,...)
ZEND_API zend_result add_next_index_string(zval *arg, const char *str)
ZEND_API void add_assoc_null_ex(zval *arg, const char *key, size_t key_len)
#define ZEND_PARSE_PARAMETERS_END()
#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor)
#define ZEND_DECLARE_MODULE_GLOBALS(module_name)
#define ZEND_GET_MODULE(name)
#define zend_parse_parameters_none()
#define Z_PARAM_STR(dest)
#define ZEND_PARSE_PARAMETERS_START(min_num_args, max_num_args)
#define Z_PARAM_LONG(dest)
#define Z_PARAM_BOOL(dest)
#define Z_PARAM_ARRAY(dest)
#define Z_PARAM_ZVAL(dest)
#define ZVAL_STRINGL(z, s, l)
#define Z_PARAM_ARRAY_HT_OR_LONG(dest_ht, dest_long)
#define ZVAL_EMPTY_STRING(z)
#define estrndup(s, length)
strcmp(string $string1, string $string2)
ZEND_API bool zend_is_auto_global(zend_string *name)
#define strcasecmp(s1, s2)
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
ZEND_API zval *ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *str, size_t len)
ZEND_API zval *ZEND_FASTCALL zend_hash_update(HashTable *ht, zend_string *key, zval *pData)
ZEND_API zval *ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key)
#define ZEND_HASH_FOREACH_STR_KEY_VAL(ht, _key, _val)
#define ZEND_HASH_FOREACH_END()
#define ZEND_HASH_FOREACH_VAL(ht, _val)
#define UNREGISTER_INI_ENTRIES()
#define REGISTER_INI_ENTRIES()
#define DISPLAY_INI_ENTRIES()
struct _zend_string zend_string
#define STANDARD_MODULE_HEADER
struct _zend_module_entry zend_module_entry
#define STANDARD_MODULE_PROPERTIES
#define convert_to_string(op)
struct _zend_class_entry zend_class_entry
#define Z_ARRVAL_P(zval_p)
struct _zend_array HashTable
#define Z_UNPROTECT_RECURSION_P(zv)
#define Z_OBJCE_P(zval_p)
#define Z_PROTECT_RECURSION_P(zv)
#define SEPARATE_ARRAY(zv)
#define ZVAL_COPY_VALUE(z, v)
#define Z_IS_RECURSIVE_P(zv)
ZEND_API void zval_ptr_dtor(zval *zval_ptr)