From: Ilia Alshanetsky Date: Tue, 3 Oct 2006 02:16:53 +0000 (+0000) Subject: Refactor the filter extension X-Git-Tag: php-5.2.0RC5~42 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80cecdb41ff6b7ffd8e20623fbe410b82a0255a7;p=php Refactor the filter extension - Cleanup API - Added handling for circular references - Renamed functions. # Original patch by Pierre --- diff --git a/ext/filter/filter.c b/ext/filter/filter.c index 9f04a85f3a..bad57ddc57 100644 --- a/ext/filter/filter.c +++ b/ext/filter/filter.c @@ -15,6 +15,7 @@ | Authors: Rasmus Lerdorf | | Derick Rethans | | Pierre-A. Joye | + | Ilia Alshanetsky | +----------------------------------------------------------------------+ */ @@ -51,7 +52,7 @@ filter_list_entry filter_list[] = { { "stripped", FILTER_SANITIZE_STRING, php_filter_string }, { "encoded", FILTER_SANITIZE_ENCODED, php_filter_encoded }, { "special_chars", FILTER_SANITIZE_SPECIAL_CHARS, php_filter_special_chars }, - { "unsafe_raw", FILTER_UNSAFE_RAW, php_filter_unsafe_raw }, + { "unsafe_raw", FILTER_UNSAFE_RAW, php_filter_unsafe_raw }, { "email", FILTER_SANITIZE_EMAIL, php_filter_email }, { "url", FILTER_SANITIZE_URL, php_filter_url }, { "number_int", FILTER_SANITIZE_NUMBER_INT, php_filter_number_int }, @@ -74,21 +75,18 @@ filter_list_entry filter_list[] = { #define PARSE_SESSION 6 #endif -#ifndef PARSE_DATA -#define PARSE_DATA 7 -#endif - static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC); /* {{{ filter_functions[] */ zend_function_entry filter_functions[] = { - PHP_FE(input_get, NULL) - PHP_FE(input_get_args, NULL) - PHP_FE(input_filters_list, NULL) - PHP_FE(input_has_variable, NULL) - PHP_FE(input_name_to_filter, NULL) - PHP_FE(filter_data, NULL) + PHP_FE(filter_input, NULL) + PHP_FE(filter_var, NULL) + PHP_FE(filter_input_array, NULL) + PHP_FE(filter_var_array, NULL) + PHP_FE(filter_list, NULL) + PHP_FE(filter_has_var, NULL) + PHP_FE(filter_id, NULL) {NULL, NULL, NULL} }; /* }}} */ @@ -172,17 +170,18 @@ PHP_MINIT_FUNCTION(filter) REGISTER_INI_ENTRIES(); REGISTER_LONG_CONSTANT("INPUT_POST", PARSE_POST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("INPUT_GET", PARSE_GET, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("INPUT_GET", PARSE_GET, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INPUT_COOKIE", PARSE_COOKIE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("INPUT_ENV", PARSE_ENV, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("INPUT_ENV", PARSE_ENV, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INPUT_SERVER", PARSE_SERVER, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INPUT_SESSION", PARSE_SESSION, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("INPUT_DATA", PARSE_DATA, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("INPUT_REQUEST", PARSE_SESSION, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("FILTER_FLAG_NONE", FILTER_FLAG_NONE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("FILTER_FLAG_SCALAR", FILTER_FLAG_SCALAR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("FILTER_FLAG_ARRAY", FILTER_FLAG_ARRAY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FILTER_REQUIRE_SCALAR", FILTER_REQUIRE_SCALAR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FILTER_REQUIRE_ARRAY", FILTER_REQUIRE_ARRAY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("FILTER_FORCE_ARRAY", FILTER_FORCE_ARRAY, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("FILTER_VALIDATE_INT", FILTER_VALIDATE_INT, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("FILTER_VALIDATE_BOOLEAN", FILTER_VALIDATE_BOOLEAN, CONST_CS | CONST_PERSISTENT); @@ -256,6 +255,7 @@ PHP_MSHUTDOWN_FUNCTION(filter) zval_ptr_dtor(&IF_G(a)); \ IF_G(a) = NULL; \ } + PHP_RSHUTDOWN_FUNCTION(filter) { VAR_ARRAY_COPY_DTOR(get_array) @@ -417,14 +417,25 @@ static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int static void php_zval_filter_recursive(zval **value, long filter, long flags, zval *options, char *charset, zend_bool copy TSRMLS_DC) /* {{{ */ { - zval **element; - HashPosition pos; - if (Z_TYPE_PP(value) == IS_ARRAY) { + zval **element; + HashPosition pos; + + if (Z_ARRVAL_PP(value)->nApplyCount > 1) { + return; + } + for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_PP(value), &pos); zend_hash_get_current_data_ex(Z_ARRVAL_PP(value), (void **) &element, &pos) == SUCCESS; zend_hash_move_forward_ex(Z_ARRVAL_PP(value), &pos)) { - php_zval_filter_recursive(element, filter, flags, options, charset, copy TSRMLS_CC); + + if (Z_TYPE_PP(element) == IS_ARRAY) { + Z_ARRVAL_PP(element)->nApplyCount++; + php_zval_filter_recursive(element, filter, flags, options, charset, copy TSRMLS_CC); + Z_ARRVAL_PP(element)->nApplyCount--; + } else { + php_zval_filter(element, filter, flags, options, charset, copy TSRMLS_CC); + } } } else { php_zval_filter(value, filter, flags, options, charset, copy TSRMLS_CC); @@ -432,10 +443,12 @@ static void php_zval_filter_recursive(zval **value, long filter, long flags, zva } /* }}} */ -static zval * php_filter_get_storage(long arg TSRMLS_DC) /* {{{ */ +/* {{{ */ +static zval *php_filter_get_storage(long arg TSRMLS_DC) { - zval * array_ptr = NULL; + zval *array_ptr = NULL; zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays)); + switch (arg) { case PARSE_GET: array_ptr = IF_G(get_array); @@ -447,383 +460,267 @@ static zval * php_filter_get_storage(long arg TSRMLS_DC) /* {{{ */ array_ptr = IF_G(cookie_array); break; case PARSE_SERVER: - if(jit_initialization) zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC); + if (jit_initialization) { + zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC); + } array_ptr = IF_G(server_array); break; case PARSE_ENV: - if(jit_initialization) zend_is_auto_global("_ENV", sizeof("_ENV")-1 TSRMLS_CC); + if (jit_initialization) { + zend_is_auto_global("_ENV", sizeof("_ENV")-1 TSRMLS_CC); + } array_ptr = IF_G(env_array); break; + case PARSE_SESSION: + /* FIXME: Implement session source */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_SESSION is not yet implemented"); + break; + case PARSE_REQUEST: + /* FIXME: Implement request source */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_REQUEST is not yet implemented"); + break; } return array_ptr; } /* }}} */ -/* {{{ proto mixed input_has_variable(constant type, string variable_name) +/* {{{ proto mixed filter_has_var(constant type, string variable_name) * Returns true if the variable with the name 'name' exists in source. */ -PHP_FUNCTION(input_has_variable) +PHP_FUNCTION(filter_has_var) { long arg; char *var; int var_len; zval **tmp; zval *array_ptr = NULL; - HashTable *hash_ptr; - int found = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &arg, &var, &var_len) == FAILURE) { - return; - } - - array_ptr = php_filter_get_storage(arg TSRMLS_CC); - - if (!array_ptr) { RETURN_FALSE; } - if (!found) { - hash_ptr = HASH_OF(array_ptr); + array_ptr = php_filter_get_storage(arg TSRMLS_CC); - if (hash_ptr && zend_hash_find(hash_ptr, var, var_len + 1, (void **)&tmp) == SUCCESS) { - RETURN_TRUE; - } + if (array_ptr && HASH_OF(array_ptr) && zend_hash_find(HASH_OF(array_ptr), var, var_len + 1, (void **)&tmp) == SUCCESS) { + RETURN_TRUE; } RETURN_FALSE; } /* }}} */ -/* {{{ proto mixed input_get(constant type, string variable_name [, int filter [, mixed flags [, string charset]]]) - * Returns the filtered variable 'name'* from source `type`. - */ -PHP_FUNCTION(input_get) -{ - long arg, filter = FILTER_DEFAULT; - char *var, *charset = NULL; - int var_len, charset_len; - zval **flags = NULL; - zval **tmp; - zval *array_ptr = NULL, *array_ptr2 = NULL, *array_ptr3 = NULL; - HashTable *hash_ptr; - int found = 0; - long filter_flags = 0; - zval *options = NULL; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|lZs", &arg, &var, &var_len, &filter, &flags, &charset, &charset_len) == FAILURE) { - return; - } - - if (flags) { - switch (Z_TYPE_PP(flags)) { - case IS_ARRAY: - options = *flags; - break; - case IS_STRING: - case IS_BOOL: - case IS_LONG: - convert_to_long_ex(flags); - filter_flags = Z_LVAL_PP(flags); - options = NULL; - break; +static void php_filter_call(zval **filtered, long filter, zval **filter_args, const int copy, long filter_flags) +{ + zval *options = NULL; + zval **option; + char *charset = NULL; + + if (filter_args && Z_TYPE_PP(filter_args) != IS_ARRAY) { + convert_to_long_ex(filter_args); + if (filter != -1) { /* handler for array apply */ + /* filter_args is the filter_flags */ + filter_flags = Z_LVAL_PP(filter_args); + } else { + filter = Z_LVAL_PP(filter_args); + } + } else if (filter_args) { + if (zend_hash_find(HASH_OF(*filter_args), "filter", sizeof("filter"), (void **)&option) == SUCCESS) { + convert_to_long(*option); + filter = Z_LVAL_PP(option); } - } - - switch(arg) { - case PARSE_GET: - case PARSE_POST: - case PARSE_COOKIE: - case PARSE_SERVER: - case PARSE_ENV: - array_ptr = php_filter_get_storage(arg TSRMLS_CC); - break; - case PARSE_SESSION: - /* FIXME: Implement session source */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_SESSION not implemented"); - break; + if (zend_hash_find(HASH_OF(*filter_args), "flags", sizeof("flags"), (void **)&option) == SUCCESS) { + convert_to_long(*option); + filter_flags = Z_LVAL_PP(option); + } - case PARSE_REQUEST: - /* FIXME: Implement request source */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_REQUEST not implemented"); - return; - if (PG(variables_order)) { - zval **a_ptr = &array_ptr; - char *p, *variables_order = PG(variables_order); - - for (p = variables_order; p && *p; p++) { - switch (*p) { - case 'p': - case 'P': - if (IF_G(default_filter) != FILTER_UNSAFE_RAW) { - *a_ptr = IF_G(post_array); - } else { - *a_ptr = PG(http_globals)[TRACK_VARS_POST]; - } - break; - case 'g': - case 'G': - if (IF_G(default_filter) != FILTER_UNSAFE_RAW) { - *a_ptr = IF_G(get_array); - } else { - *a_ptr = PG(http_globals)[TRACK_VARS_GET]; - } - break; - case 'c': - case 'C': - if (IF_G(default_filter) != FILTER_UNSAFE_RAW) { - *a_ptr = IF_G(cookie_array); - } else { - *a_ptr = PG(http_globals)[TRACK_VARS_COOKIE]; - } - break; - } - if (array_ptr && !array_ptr2) { - a_ptr = &array_ptr2; - continue; - } - if (array_ptr2 && !array_ptr3) { - a_ptr = &array_ptr3; - } + if (zend_hash_find(HASH_OF(*filter_args), "options", sizeof("options"), (void **)&option) == SUCCESS) { + if (filter != FILTER_CALLBACK) { + if (Z_TYPE_PP(option) == IS_ARRAY) { + options = *option; } } else { - array_ptr = php_filter_get_storage(PARSE_GET TSRMLS_CC); + options = *option; + filter_flags = 0; } + } } - if (!array_ptr) { - RETURN_FALSE; - } - - if (array_ptr3) { - hash_ptr = HASH_OF(array_ptr3); - if (hash_ptr && zend_hash_find(hash_ptr, var, var_len + 1, (void **)&tmp) == SUCCESS) { - *return_value = **tmp; - found = 1; + if (Z_TYPE_PP(filtered) == IS_ARRAY) { + if (filter_flags & FILTER_REQUIRE_SCALAR) { + if (copy) { + SEPARATE_ZVAL(filtered); + } + zval_dtor(*filtered); + ZVAL_FALSE(*filtered); + return; } + php_zval_filter_recursive(filtered, filter, filter_flags, options, charset, copy TSRMLS_CC); + return; } - - if (array_ptr2 && !found) { - hash_ptr = HASH_OF(array_ptr2); - if (hash_ptr && zend_hash_find(hash_ptr, var, var_len + 1, (void **)&tmp) == SUCCESS) { - *return_value = **tmp; - found = 1; + if (filter_flags & FILTER_REQUIRE_ARRAY) { + if (copy) { + SEPARATE_ZVAL(filtered); } + zval_dtor(*filtered); + ZVAL_FALSE(*filtered); + return; } - if (!found) { - hash_ptr = HASH_OF(array_ptr); + php_zval_filter(filtered, filter, filter_flags, options, charset, copy TSRMLS_CC); + if (filter_flags & FILTER_FORCE_ARRAY) { + zval *temp_array; - if (hash_ptr && zend_hash_find(hash_ptr, var, var_len + 1, (void **)&tmp) == SUCCESS) { - *return_value = **tmp; - found = 1; - } + ALLOC_INIT_ZVAL(temp_array); + array_init(temp_array); + add_next_index_zval(temp_array, *filtered); + *filtered = temp_array; } +} - if (found) { - zval **option; +static void php_filter_array_handler(zval *input, zval **op, zval *return_value) +{ + char *arg_key; + uint arg_key_len; + ulong index; + HashPosition pos; + zval **tmp, **arg_elm; + + if (!op) { + SEPARATE_ZVAL(&input); + *return_value = *input; + php_filter_call(&return_value, FILTER_DEFAULT, NULL, 0, FILTER_REQUIRE_ARRAY); + } else if (Z_TYPE_PP(op) == IS_LONG) { + SEPARATE_ZVAL(&input); + *return_value = *input; + php_filter_call(&return_value, Z_LVAL_PP(op), NULL, 0, FILTER_REQUIRE_ARRAY); + } else if (Z_TYPE_PP(op) == IS_ARRAY) { + array_init(return_value); - if (options && filter_flags==0 && - zend_hash_find(HASH_OF(options), "flags", sizeof("flags"), (void **)&option) == SUCCESS) { - switch (Z_TYPE_PP(option)) { - case IS_ARRAY: - break; - default: - convert_to_long(*option); - filter_flags = Z_LVAL_PP(option); - break; - } - } else { - filter_flags = filter_flags | FILTER_FLAG_SCALAR; - } + zend_hash_internal_pointer_reset(Z_ARRVAL_PP(op)); + for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_PP(op), &pos); + zend_hash_get_current_data_ex(Z_ARRVAL_PP(op), (void **) &arg_elm, &pos) == SUCCESS; + zend_hash_move_forward_ex(Z_ARRVAL_PP(op), &pos)) + { + if (zend_hash_get_current_key_ex(Z_ARRVAL_PP(op), &arg_key, &arg_key_len, &index, 0, &pos) != HASH_KEY_IS_STRING) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Numeric keys are not allowed in the definition array."); + zval_dtor(return_value); + RETURN_FALSE; + } + if (zend_hash_find(Z_ARRVAL_P(input), arg_key, arg_key_len, (void **)&tmp) != SUCCESS) { + add_assoc_null_ex(return_value, arg_key, arg_key_len); + } else { + zval *nval; - zval_copy_ctor(return_value); /* Watch out for empty strings */ + ALLOC_ZVAL(nval); + *nval = **tmp; + zval_copy_ctor(nval); + INIT_PZVAL(nval); - if (Z_TYPE_P(return_value) == IS_ARRAY && !(filter_flags & FILTER_FLAG_ARRAY)) { - zval_dtor(return_value); - ZVAL_BOOL(return_value, 0); + php_filter_call(&nval, -1, arg_elm, 0, FILTER_REQUIRE_SCALAR); + add_assoc_zval_ex(return_value, arg_key, arg_key_len, nval); + } } - - php_zval_filter_recursive(&return_value, filter, filter_flags, options, charset, 1 TSRMLS_CC); } else { - RETURN_NULL(); + RETURN_FALSE; } } -/* }}} */ -/* {{{ proto mixed input_get_args(constant type, array definition, [, array data]) - * Returns an array with all arguments defined in 'definition'. INPUT_DATA will use the data given as last argument. + +/* {{{ proto mixed filter_input(constant type, string variable_name [, long filter [, mixed options]]) + * Returns the filtered variable 'name'* from source `type`. */ -PHP_FUNCTION(input_get_args) +PHP_FUNCTION(filter_input) { - long filter = FILTER_DEFAULT; - char *charset = NULL; - zval **tmp, ** option; - int filter_flags = FILTER_FLAG_SCALAR; - zval *options = NULL, *temparray = NULL; - - zval *args_array, *values = NULL; - HashTable *args_hash; - HashPosition pos; - - HashTable * g_hash; + long fetch_from, filter = FILTER_DEFAULT; + zval **filter_args = NULL, **data=NULL, **tmp; + zval *input = NULL; - long args_from = 0; - long elm_count; - char *key; - unsigned int key_len; - unsigned long index; - zend_bool copy = 0; - - /* pointers to the zval array GET, POST,... */ - zval *array_ptr = NULL; - zval **element; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "la|a/", &args_from, &args_array, &values) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lZ|lZ", &fetch_from, &data, &filter, &filter_args) == FAILURE) { RETURN_FALSE; } - args_hash = HASH_OF(args_array); - elm_count = zend_hash_num_elements(args_hash); + input = php_filter_get_storage(fetch_from TSRMLS_CC); - if (elm_count < 1) { - RETURN_NULL(); + if (!input || !HASH_OF(input) || zend_hash_find(HASH_OF(input), Z_STRVAL_PP(data), Z_STRLEN_PP(data) + 1, (void **)&tmp) != SUCCESS) { + RETURN_FALSE; } - switch (args_from) { - case PARSE_GET: - case PARSE_POST: - case PARSE_COOKIE: - case PARSE_SERVER: - case PARSE_ENV: - array_ptr = php_filter_get_storage(args_from TSRMLS_CC); - break; - - case PARSE_DATA: - array_ptr = values; - copy = 1; - break; - - case PARSE_SESSION: - /* FIXME: Implement session source */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_SESSION not implemented"); - break; + *return_value = **tmp; + zval_copy_ctor(return_value); /* Watch out for empty strings */ - case PARSE_REQUEST: - /* FIXME: Implement session source */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "INPUT_REQUEST not implemented"); - return; - break; + php_filter_call(&return_value, filter, filter_args, 1, FILTER_REQUIRE_SCALAR); +} +/* }}} */ - default: - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown INPUT method"); - return; - break; - } +/* {{{ proto mixed filter_var(mixed variable [, long filter [, mixed options]]) + * Returns the filtered version of the vriable. + */ +PHP_FUNCTION(filter_var) +{ + long filter = FILTER_DEFAULT; + zval **filter_args = NULL, *data; - if (!array_ptr) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/|lZ", &data, &filter, &filter_args) == FAILURE) { RETURN_FALSE; - } else { - g_hash = HASH_OF(array_ptr); - if (g_hash) { - zend_hash_internal_pointer_reset(g_hash); - } - array_init(return_value); } - for (zend_hash_internal_pointer_reset_ex(args_hash, &pos); - zend_hash_get_current_data_ex(args_hash, (void **) &element, &pos) == SUCCESS; - zend_hash_move_forward_ex(args_hash, &pos)) { + *return_value = *data; + zval_copy_ctor(data); - if (zend_hash_get_current_key_ex(args_hash, &key, &key_len, &index, 0, &pos) != HASH_KEY_IS_STRING) { - zval_dtor(return_value); - RETURN_FALSE; - } - - if (g_hash && zend_hash_find(g_hash, key, key_len, (void **)&tmp) == SUCCESS) { - if (Z_TYPE_PP(element) != IS_ARRAY) { - convert_to_long(*element); - filter = Z_LVAL_PP(element); - filter_flags = FILTER_FLAG_SCALAR; - - if ((filter_flags & FILTER_FLAG_SCALAR) && Z_TYPE_PP(tmp) == IS_ARRAY) { - /* asked for scalar and found an array do not test further */ - add_assoc_bool(return_value, key, 0); - continue; - } - - } else { - if (zend_hash_find(HASH_OF(*element), "filter", sizeof("filter"), (void **)&option) == SUCCESS) { - convert_to_long(*option); - filter = Z_LVAL_PP(option); - } + php_filter_call(&return_value, filter, filter_args, 1, FILTER_REQUIRE_SCALAR); +} +/* }}} */ - if (zend_hash_find(HASH_OF(*element), "options", sizeof("options"), (void **)&option) == SUCCESS) { - if (Z_TYPE_PP(option) == IS_ARRAY) { - options = *option; - } - } else { - options = NULL; - } +/* {{{ proto mixed filter_input_array(constant type, [, mixed options]]) + * Returns an array with all arguments defined in 'definition'. + */ +PHP_FUNCTION(filter_input_array) +{ + long fetch_from; + zval *array_input = NULL, **op = NULL; - if (zend_hash_find(HASH_OF(*element), "flags", sizeof("flags"), (void **)&option) == SUCCESS) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|Z", &fetch_from, &op) == FAILURE) { + RETURN_FALSE; + } - switch (Z_TYPE_PP(option)) { - case IS_ARRAY: - break; - default: - convert_to_long(*option); - filter_flags = Z_LVAL_PP(option); - break; - } - } else { - filter_flags = FILTER_FLAG_SCALAR; - } + array_input = php_filter_get_storage(fetch_from TSRMLS_CC); - if ((filter_flags & FILTER_FLAG_SCALAR) && Z_TYPE_PP(tmp) == IS_ARRAY) { - /* asked for scalar and found an array do not test further */ - add_assoc_bool(return_value, key, 0); - continue; - } + if (!array_input || !HASH_OF(array_input)) { + RETURN_FALSE; + } - if (zend_hash_find(HASH_OF(*element), "charset", sizeof("charset"), (void **)&option) == SUCCESS) { - convert_to_string(*option); - charset = Z_STRVAL_PP(option); - } - } + php_filter_array_handler(array_input, op, return_value); +} +/* }}} */ - if (filter_flags & FILTER_FLAG_ARRAY) { - php_zval_filter_recursive(tmp, filter, filter_flags, options, charset, copy TSRMLS_CC); +/* {{{ proto mixed filter_var_array(array data, [, mixed options]]) + * Returns an array with all arguments defined in 'definition'. + */ +PHP_FUNCTION(filter_var_array) +{ + zval *array_input = NULL, **op = NULL; - /* ARRAY always returns an array */ - if (Z_TYPE_PP(tmp) != IS_ARRAY) { - ALLOC_INIT_ZVAL(temparray); - array_init(temparray); - add_next_index_zval(temparray, *tmp); - *tmp = temparray; - } - } else { - php_zval_filter(tmp, filter, filter_flags, options, charset, copy TSRMLS_CC); - } - zval_add_ref(tmp); - add_assoc_zval(return_value, key, *tmp); - } else { - add_assoc_null(return_value, key); - } - filter = FILTER_DEFAULT; - filter_flags = FILTER_FLAG_SCALAR; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|Z", &array_input, &op) == FAILURE) { + RETURN_FALSE; } + + php_filter_array_handler(array_input, op, return_value); } /* }}} */ -/* {{{ proto input_filters_list() +/* {{{ proto filter_list() * Returns a list of all supported filters */ -PHP_FUNCTION(input_filters_list) +PHP_FUNCTION(filter_list) { int i, size = sizeof(filter_list) / sizeof(filter_list_entry); + if (ZEND_NUM_ARGS()) { + WRONG_PARAM_COUNT; + } + array_init(return_value); for (i = 0; i < size; ++i) { add_next_index_string(return_value, (char *)filter_list[i].name, 1); @@ -831,9 +728,9 @@ PHP_FUNCTION(input_filters_list) } /* }}} */ -/* {{{ proto input_name_to_filter(string filtername) +/* {{{ proto filter_id(string filtername) * Returns the filter ID belonging to a named filter */ -PHP_FUNCTION(input_name_to_filter) +PHP_FUNCTION(filter_id) { int i, filter_len; int size = sizeof(filter_list) / sizeof(filter_list_entry); @@ -848,59 +745,8 @@ PHP_FUNCTION(input_name_to_filter) RETURN_LONG(filter_list[i].id); } } - RETURN_NULL(); -} -/* }}} */ -/* {{{ proto filter_data(mixed variable, int filter [, mixed filter_options [, string charset ]]) - * Returns the filterd variable (scalar or array can be used). - */ -PHP_FUNCTION(filter_data) -{ - long filter = FILTER_DEFAULT; - char *charset = NULL; - int charset_len; - zval *var, **flags = NULL; - int filter_flags = 0; - zval *options = NULL; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/l|Zs", &var, &filter, &flags, &charset, &charset_len) == FAILURE) { - return; - } - - if (filter != FILTER_CALLBACK) { - if (flags) { - switch (Z_TYPE_PP(flags)) { - case IS_ARRAY: - options = *flags; - break; - - case IS_STRING: - case IS_BOOL: - case IS_LONG: - convert_to_long_ex(flags); - filter_flags = Z_LVAL_PP(flags); - options = NULL; - break; - } - } - } else { - if (flags) { - switch (Z_TYPE_PP(flags)) { - case IS_ARRAY: - case IS_STRING: - options = *flags; - break; - - default: - convert_to_string_ex(flags); - options = *flags; - break; - } - } - } - php_zval_filter_recursive(&var, filter, filter_flags, options, charset, 1 TSRMLS_CC); - RETURN_ZVAL(var, 1, 0); + RETURN_FALSE; } /* }}} */ diff --git a/ext/filter/filter_private.h b/ext/filter/filter_private.h index e18bcbe1c9..6adfe76615 100644 --- a/ext/filter/filter_private.h +++ b/ext/filter/filter_private.h @@ -23,8 +23,10 @@ #define FILTER_FLAG_NONE 0x0000 -#define FILTER_FLAG_ARRAY 0x1000000 -#define FILTER_FLAG_SCALAR 0x2000000 +#define FILTER_REQUIRE_ARRAY 0x1000000 +#define FILTER_REQUIRE_SCALAR 0x2000000 + +#define FILTER_FORCE_ARRAY 0x4000000 #define FILTER_FLAG_ALLOW_OCTAL 0x0001 #define FILTER_FLAG_ALLOW_HEX 0x0002 diff --git a/ext/filter/logical_filters.c b/ext/filter/logical_filters.c index e3f85f95b2..4b6457a44f 100644 --- a/ext/filter/logical_filters.c +++ b/ext/filter/logical_filters.c @@ -162,7 +162,7 @@ void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ { zval **option_val; long min_range, max_range, option_flags; - int min_range_set, max_range_set, option_flags_set; + int min_range_set, max_range_set; int allow_octal = 0, allow_hex = 0; int len, error = 0; long ctx_value; @@ -171,7 +171,7 @@ void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ /* Parse options */ FETCH_LONG_OPTION(min_range, "min_range"); FETCH_LONG_OPTION(max_range, "max_range"); - FETCH_LONG_OPTION(option_flags, "flags"); + option_flags = flags; len = Z_STRLEN_P(value); @@ -181,11 +181,11 @@ void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ return; } - if (option_flags_set && (option_flags & FILTER_FLAG_ALLOW_OCTAL)) { + if (option_flags & FILTER_FLAG_ALLOW_OCTAL) { allow_octal = 1; } - if (option_flags_set && (option_flags & FILTER_FLAG_ALLOW_HEX)) { + if (option_flags & FILTER_FLAG_ALLOW_HEX) { allow_hex = 1; } diff --git a/ext/filter/php_filter.h b/ext/filter/php_filter.h index 4c2b9381bb..35533188e8 100644 --- a/ext/filter/php_filter.h +++ b/ext/filter/php_filter.h @@ -49,12 +49,13 @@ PHP_RINIT_FUNCTION(filter); PHP_RSHUTDOWN_FUNCTION(filter); PHP_MINFO_FUNCTION(filter); -PHP_FUNCTION(input_get); -PHP_FUNCTION(input_get_args); -PHP_FUNCTION(input_filters_list); -PHP_FUNCTION(input_has_variable); -PHP_FUNCTION(input_name_to_filter); -PHP_FUNCTION(filter_data); +PHP_FUNCTION(filter_input); +PHP_FUNCTION(filter_var); +PHP_FUNCTION(filter_input_array); +PHP_FUNCTION(filter_var_array); +PHP_FUNCTION(filter_list); +PHP_FUNCTION(filter_has_var); +PHP_FUNCTION(filter_id); ZEND_BEGIN_MODULE_GLOBALS(filter) zval *post_array; diff --git a/ext/filter/tests/006.phpt b/ext/filter/tests/006.phpt index 189579acf1..aa612d73d3 100644 --- a/ext/filter/tests/006.phpt +++ b/ext/filter/tests/006.phpt @@ -4,7 +4,7 @@ filter() test foo=abc --FILE-- --EXPECT-- abc diff --git a/ext/filter/tests/008.phpt b/ext/filter/tests/008.phpt index eb6963c099..a4a1292183 100644 --- a/ext/filter/tests/008.phpt +++ b/ext/filter/tests/008.phpt @@ -1,10 +1,10 @@ --TEST-- -input_filters_list() +filter_list() --FILE-- @@ -47,42 +47,7 @@ array(18) { [17]=> string(8) "callback" } -array(18) { - [0]=> - string(3) "int" - [1]=> - string(7) "boolean" - [2]=> - string(5) "float" - [3]=> - string(15) "validate_regexp" - [4]=> - string(12) "validate_url" - [5]=> - string(14) "validate_email" - [6]=> - string(11) "validate_ip" - [7]=> - string(6) "string" - [8]=> - string(8) "stripped" - [9]=> - string(7) "encoded" - [10]=> - string(13) "special_chars" - [11]=> - string(10) "unsafe_raw" - [12]=> - string(5) "email" - [13]=> - string(3) "url" - [14]=> - string(10) "number_int" - [15]=> - string(12) "number_float" - [16]=> - string(12) "magic_quotes" - [17]=> - string(8) "callback" -} + +Warning: Wrong parameter count for filter_list() in /home4/php_dev/php52/ext/filter/tests/008.php on line 4 +NULL Done diff --git a/ext/filter/tests/009.phpt b/ext/filter/tests/009.phpt index c33fe8ae36..d9d66be07e 100644 --- a/ext/filter/tests/009.phpt +++ b/ext/filter/tests/009.phpt @@ -1,16 +1,16 @@ --TEST-- -input_name_to_filter() +filter_id() --FILE-- @@ -19,12 +19,12 @@ int(513) int(513) int(518) int(257) -NULL +bool(false) -Warning: input_name_to_filter() expects parameter 1 to be string, array given in %s on line %d -NULL +Warning: filter_id() expects parameter 1 to be string, array given in %s on line %d NULL +bool(false) -Warning: input_name_to_filter() expects exactly 1 parameter, 3 given in %s on line %d +Warning: filter_id() expects exactly 1 parameter, 3 given in %s on line %d NULL Done diff --git a/ext/filter/tests/010.phpt b/ext/filter/tests/010.phpt index c78acd6779..1a385ff373 100644 --- a/ext/filter/tests/010.phpt +++ b/ext/filter/tests/010.phpt @@ -1,16 +1,16 @@ --TEST-- -filter_data() +filter_var() --FILE-- @@ -50,8 +50,8 @@ array(7) { } } -Warning: filter_data() expects parameter 2 to be long, array given in %s on line %d -NULL +Warning: filter_var() expects parameter 2 to be long, array given in %s on line %d +bool(false) string(1) "1" string(1) "1" string(1) "1" diff --git a/ext/filter/tests/012.phpt b/ext/filter/tests/012.phpt index 77c1880137..103fd3c8f9 100644 --- a/ext/filter/tests/012.phpt +++ b/ext/filter/tests/012.phpt @@ -1,11 +1,11 @@ --TEST-- -input_get() +filter_input() --FILE-- diff --git a/ext/filter/tests/013.phpt b/ext/filter/tests/013.phpt index 6c755c78b7..55c71e3535 100644 --- a/ext/filter/tests/013.phpt +++ b/ext/filter/tests/013.phpt @@ -1,40 +1,40 @@ --TEST-- -filter_data() and flags +filter_var() and flags --FILE-- FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("0Xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("0xFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("0XFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("07", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("0xff0000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("0666", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("08", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("00", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var(" 234", FILTER_VALIDATE_INT)); +var_dump(filter_var("234 ", FILTER_VALIDATE_INT)); +var_dump(filter_var(" 234 ", FILTER_VALIDATE_INT)); +var_dump(filter_var("0xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("0Xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("0xFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("0XFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("07", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("0xff0000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("0666", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("08", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("00", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("-0xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("-0Xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("-0xFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("-0XFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("-07", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("-0xff0000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); -var_dump(filter_data("-0666", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("-0xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("-0Xff", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("-0xFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("-0XFF", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("-07", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); +var_dump(filter_var("-0xff0000", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))); +var_dump(filter_var("-0666", FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))); -var_dump(filter_data("6", FILTER_VALIDATE_INT, array("min_range"=>1, "max_range"=>7))); -var_dump(filter_data("6", FILTER_VALIDATE_INT, array("min_range"=>0, "max_range"=>5))); -var_dump(filter_data(-1, FILTER_VALIDATE_INT, array("min_range"=>1, "max_range"=>7))); -var_dump(filter_data(-1, FILTER_VALIDATE_INT, array("min_range"=>-4, "max_range"=>7))); +var_dump(filter_var("6", FILTER_VALIDATE_INT, array("options" => array("min_range"=>1, "max_range"=>7)))); +var_dump(filter_var("6", FILTER_VALIDATE_INT, array("options" => array("min_range"=>0, "max_range"=>5)))); +var_dump(filter_var(-1, FILTER_VALIDATE_INT, array("options" => array("min_range"=>1, "max_range"=>7)))); +var_dump(filter_var(-1, FILTER_VALIDATE_INT, array("options" => array("min_range"=>-4, "max_range"=>7)))); -var_dump(filter_data("", FILTER_VALIDATE_INT, array("min_range"=>-4, "max_range"=>7))); -var_dump(filter_data("", FILTER_VALIDATE_INT, array("min_range"=>2, "max_range"=>7))); -var_dump(filter_data("", FILTER_VALIDATE_INT, array("min_range"=>-5, "max_range"=>-3))); -var_dump(filter_data(345, FILTER_VALIDATE_INT, array("min_range"=>500, "max_range"=>100))); -var_dump(filter_data("0ff", FILTER_VALIDATE_INT)); -var_dump(filter_data("010", FILTER_VALIDATE_INT)); +var_dump(filter_var("", FILTER_VALIDATE_INT, array("options" => array("min_range"=>-4, "max_range"=>7)))); +var_dump(filter_var("", FILTER_VALIDATE_INT, array("options" => array("min_range"=>2, "max_range"=>7)))); +var_dump(filter_var("", FILTER_VALIDATE_INT, array("options" => array("min_range"=>-5, "max_range"=>-3)))); +var_dump(filter_var(345, FILTER_VALIDATE_INT, array("options" => array("min_range"=>500, "max_range"=>100)))); +var_dump(filter_var("0ff", FILTER_VALIDATE_INT)); +var_dump(filter_var("010", FILTER_VALIDATE_INT)); echo "Done\n"; ?> diff --git a/ext/filter/tests/014.phpt b/ext/filter/tests/014.phpt index aab2e7979b..ffee527f00 100644 --- a/ext/filter/tests/014.phpt +++ b/ext/filter/tests/014.phpt @@ -1,5 +1,5 @@ --TEST-- -filter_data() and FILTER_VALIDATE_BOOLEAN +filter_var() and FILTER_VALIDATE_BOOLEAN --FILE-- @@ -58,8 +58,7 @@ string(5) "http:" string(4) "http" string(0) "" string(2) "-1" -array(0) { -} +bool(false) bool(false) string(10) "http://qwe" bool(false) diff --git a/ext/filter/tests/016.phpt b/ext/filter/tests/016.phpt index 5043567e8d..67921f0188 100644 --- a/ext/filter/tests/016.phpt +++ b/ext/filter/tests/016.phpt @@ -1,5 +1,5 @@ --TEST-- -filter_data() and FILTER_VALIDATE_EMAIL +filter_var() and FILTER_VALIDATE_EMAIL --FILE-- '/.*/'))); -var_dump(filter_data("data", FILTER_VALIDATE_REGEXP, array("regexp"=>'/^b(.*)/'))); -var_dump(filter_data("data", FILTER_VALIDATE_REGEXP, array("regexp"=>'/^d(.*)/'))); -var_dump(filter_data("data", FILTER_VALIDATE_REGEXP, array("regexp"=>'/blah/'))); -var_dump(filter_data("data", FILTER_VALIDATE_REGEXP, array("regexp"=>'/\[/'))); -var_dump(filter_data("data", FILTER_VALIDATE_REGEXP)); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/.*/')))); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/^b(.*)/')))); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/^d(.*)/')))); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/blah/')))); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>'/\[/')))); +var_dump(filter_var("data", FILTER_VALIDATE_REGEXP)); echo "Done\n"; ?> @@ -19,6 +19,6 @@ string(4) "data" bool(false) bool(false) -Warning: filter_data(): 'regexp' option missing in %s on line %d +Warning: filter_var(): 'regexp' option missing in %s on line %d bool(false) Done diff --git a/ext/filter/tests/018.phpt b/ext/filter/tests/018.phpt index 0f5c1a46ed..7ea17b329c 100644 --- a/ext/filter/tests/018.phpt +++ b/ext/filter/tests/018.phpt @@ -1,28 +1,28 @@ --TEST-- -filter_data() and FILTER_VALIDATE_IP +filter_var() and FILTER_VALIDATE_IP --FILE-- --EXPECT-- diff --git a/ext/filter/tests/019.phpt b/ext/filter/tests/019.phpt index 7c22e104cc..712c0ac459 100644 --- a/ext/filter/tests/019.phpt +++ b/ext/filter/tests/019.phpt @@ -1,13 +1,13 @@ --TEST-- -filter_data() & FILTER_VALIDATE_IP and weird data +filter_var() & FILTER_VALIDATE_IP and weird data --FILE-- diff --git a/ext/filter/tests/020.phpt b/ext/filter/tests/020.phpt index 914c199afb..d39ee55e9d 100644 --- a/ext/filter/tests/020.phpt +++ b/ext/filter/tests/020.phpt @@ -1,12 +1,12 @@ --TEST-- -filter_data() and FILTER_SANITIZE_MAGIC_QUOTES +filter_var() and FILTER_SANITIZE_MAGIC_QUOTES --FILE-- diff --git a/ext/filter/tests/021.phpt b/ext/filter/tests/021.phpt index 697fdd69d4..1dffc9f7a5 100644 --- a/ext/filter/tests/021.phpt +++ b/ext/filter/tests/021.phpt @@ -1,25 +1,25 @@ --TEST-- -filter_data() and FILTER_SANITIZE_NUMBER_* +filter_var() and FILTER_SANITIZE_NUMBER_* --FILE-- diff --git a/ext/filter/tests/022.phpt b/ext/filter/tests/022.phpt index 28ad64e723..a2ad5a4c3f 100644 --- a/ext/filter/tests/022.phpt +++ b/ext/filter/tests/022.phpt @@ -1,13 +1,13 @@ --TEST-- -filter_data() and FILTER_SANITIZE_EMAIL +filter_var() and FILTER_SANITIZE_EMAIL --FILE-- diff --git a/ext/filter/tests/023.phpt b/ext/filter/tests/023.phpt index 21fdc49a9b..b9761a5b77 100644 --- a/ext/filter/tests/023.phpt +++ b/ext/filter/tests/023.phpt @@ -1,13 +1,13 @@ --TEST-- -filter_data() and FILTER_UNSAFE_RAW +filter_var() and FILTER_UNSAFE_RAW --FILE-- test para

", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); -var_dump(filter_data("a[!@#$%^&*()@a@#$%^&*(.
com@#$%^&*(", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); -var_dump(filter_data("white space here \ \ \" some more", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); -var_dump(filter_data("", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); -var_dump(filter_data(" 123456789000000 ", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var("}\"

test para

", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var("a[!@#$%^&*()@a@#$%^&*(.
com@#$%^&*(", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var("white space here \ \ \" some more", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var("", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var(" 123456789000000 ", FILTER_UNSAFE_RAW, FILTER_FLAG_ENCODE_AMP)); echo "Done\n"; ?> diff --git a/ext/filter/tests/024.phpt b/ext/filter/tests/024.phpt index d405af3f08..bc2cdb400c 100644 --- a/ext/filter/tests/024.phpt +++ b/ext/filter/tests/024.phpt @@ -1,12 +1,12 @@ --TEST-- -filter_data() and FILTER_SANITIZE_ENCODED +filter_var() and FILTER_SANITIZE_ENCODED --FILE-- blah", FILTER_SANITIZE_ENCODED)); -var_dump(filter_data("", FILTER_SANITIZE_ENCODED)); -var_dump(filter_data(" text here ", FILTER_SANITIZE_ENCODED)); -var_dump(filter_data("!@#$%^&*()QWERTYUIOP{ASDFGHJKL:\"ZXCVBNM<>?", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var("\"
blah", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var("", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var(" text here ", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var("!@#$%^&*()QWERTYUIOP{ASDFGHJKL:\"ZXCVBNM<>?", FILTER_SANITIZE_ENCODED)); echo "Done\n"; ?> diff --git a/ext/filter/tests/025.phpt b/ext/filter/tests/025.phpt index c770fb80f7..d1e94abf02 100644 --- a/ext/filter/tests/025.phpt +++ b/ext/filter/tests/025.phpt @@ -1,15 +1,15 @@ --TEST-- -filter_data() and FILTER_SANITIZE_STRING +filter_var() and FILTER_SANITIZE_STRING --FILE-- ", FILTER_SANITIZE_STRING)); -var_dump(filter_data("<>!@#$%^&*()'\"", FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES)); -var_dump(filter_data("<>!@#$%^&*()'\"", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_AMP)); -var_dump(filter_data("<>`1234567890", FILTER_SANITIZE_STRING)); -var_dump(filter_data("`123`", FILTER_SANITIZE_STRING)); -var_dump(filter_data(".", FILTER_SANITIZE_STRING)); +var_dump(filter_var("", FILTER_SANITIZE_STRING)); +var_dump(filter_var("<>", FILTER_SANITIZE_STRING)); +var_dump(filter_var("<>!@#$%^&*()'\"", FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES)); +var_dump(filter_var("<>!@#$%^&*()'\"", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_AMP)); +var_dump(filter_var("<>`1234567890", FILTER_SANITIZE_STRING)); +var_dump(filter_var("`123`", FILTER_SANITIZE_STRING)); +var_dump(filter_var(".", FILTER_SANITIZE_STRING)); echo "Done\n"; ?> diff --git a/ext/filter/tests/026.phpt b/ext/filter/tests/026.phpt index b53dcb1989..9d66f11447 100644 --- a/ext/filter/tests/026.phpt +++ b/ext/filter/tests/026.phpt @@ -1,19 +1,19 @@ --TEST-- -filter_data() and FILTER_SANITIZE_STRIPPED +filter_var() and FILTER_SANITIZE_STRIPPED --FILE-- Let me see you
Stripped down to the bone

", FILTER_SANITIZE_STRIPPED)); -var_dump(filter_data("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED)); -var_dump(filter_data("", FILTER_SANITIZE_STRIPPED)); +var_dump(filter_var("

    Let me see you
    Stripped down to the bone

    ", FILTER_SANITIZE_STRIPPED)); +var_dump(filter_var("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED)); +var_dump(filter_var("", FILTER_SANITIZE_STRIPPED)); -var_dump(filter_data("

    Let me see you
    Stripped down to the bone

    ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); -var_dump(filter_data("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); -var_dump(filter_data("", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); +var_dump(filter_var("

    Let me see you
    Stripped down to the bone

    ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); +var_dump(filter_var("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); +var_dump(filter_var("", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_LOW)); -var_dump(filter_data("

    Let me see you
    Stripped down to the bone

    ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); -var_dump(filter_data("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); -var_dump(filter_data("", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); +var_dump(filter_var("

    Let me see you
    Stripped down to the bone

    ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); +var_dump(filter_var("!@#$%^&*()><<>+_\"'

  • ", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); +var_dump(filter_var("", FILTER_SANITIZE_STRIPPED, FILTER_FLAG_STRIP_HIGH)); echo "Done\n"; ?> diff --git a/ext/filter/tests/027.phpt b/ext/filter/tests/027.phpt index 048dc362ef..c187960a06 100644 --- a/ext/filter/tests/027.phpt +++ b/ext/filter/tests/027.phpt @@ -1,19 +1,19 @@ --TEST-- -filter_data() and FILTER_SANITIZE_ENCODED +filter_var() and FILTER_SANITIZE_ENCODED --FILE-- ", FILTER_SANITIZE_ENCODED)); -var_dump(filter_data("", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var("?>", FILTER_SANITIZE_ENCODED)); +var_dump(filter_var("", FILTER_SANITIZE_ENCODED)); -var_dump(filter_data("?>", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)); -var_dump(filter_data("", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)); +var_dump(filter_var("?>", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)); +var_dump(filter_var("", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_LOW)); -var_dump(filter_data("?>", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_HIGH)); -var_dump(filter_data("", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_HIGH)); +var_dump(filter_var("?>", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_HIGH)); +var_dump(filter_var("", FILTER_SANITIZE_ENCODED, FILTER_FLAG_ENCODE_HIGH)); echo "Done\n"; ?> diff --git a/ext/filter/tests/028.phpt b/ext/filter/tests/028.phpt index 1d0d2e2071..4ffb0fd1fa 100644 --- a/ext/filter/tests/028.phpt +++ b/ext/filter/tests/028.phpt @@ -1,22 +1,22 @@ --TEST-- -filter_data() and FILTER_SANITIZE_SPECIAL_CHARS +filter_var() and FILTER_SANITIZE_SPECIAL_CHARS --FILE-- ", FILTER_SANITIZE_SPECIAL_CHARS)); -var_dump(filter_data("", FILTER_SANITIZE_SPECIAL_CHARS)); +var_dump(filter_var("?>", FILTER_SANITIZE_SPECIAL_CHARS)); +var_dump(filter_var("", FILTER_SANITIZE_SPECIAL_CHARS)); -var_dump(filter_data("?>", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); -var_dump(filter_data("", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); +var_dump(filter_var("?>", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); +var_dump(filter_var("", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); -var_dump(filter_data("?>", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); -var_dump(filter_data("", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); +var_dump(filter_var("?>", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); +var_dump(filter_var("", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); -var_dump(filter_data("кириллица", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); -var_dump(filter_data("кириллица", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); +var_dump(filter_var("кириллица", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_HIGH)); +var_dump(filter_var("кириллица", FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_ENCODE_LOW)); echo "Done\n"; ?> diff --git a/ext/filter/tests/029.phpt b/ext/filter/tests/029.phpt index f60c42ef3c..d0979f1e3e 100644 --- a/ext/filter/tests/029.phpt +++ b/ext/filter/tests/029.phpt @@ -1,5 +1,5 @@ --TEST-- -filter_data() and FILTER_CALLBACK +filter_var() and FILTER_CALLBACK --FILE-- >?\"}{:", FILTER_CALLBACK, "test")); -var_dump(filter_data("", FILTER_CALLBACK, "test")); -var_dump(filter_data("qwe", FILTER_CALLBACK, "no such func")); -var_dump(filter_data("qwe", FILTER_CALLBACK, "")); -var_dump(filter_data("qwe", FILTER_CALLBACK)); +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test"))); +var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>"no such func"))); +var_dump(filter_var("qwe", FILTER_CALLBACK, array("options"=>""))); +var_dump(filter_var("qwe", FILTER_CALLBACK)); /* Simple class method callback */ class test_class { @@ -22,35 +22,35 @@ class test_class { } } -var_dump(filter_data("dAtA", FILTER_CALLBACK, array("test_class", "test"))); -var_dump(filter_data("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("test_class","test"))); -var_dump(filter_data("", FILTER_CALLBACK, array("test_class","test"))); +var_dump(filter_var("dAtA", FILTER_CALLBACK, array("options"=>array("test_class", "test")))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>array("test_class","test")))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>array("test_class","test")))); /* empty function without return value */ function test1($var) { } -var_dump(filter_data("data", FILTER_CALLBACK, "test1")); -var_dump(filter_data("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, "test1")); -var_dump(filter_data("", FILTER_CALLBACK, "test1")); +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test1"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test1"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test1"))); /* attempting to change data by reference */ function test2(&$var) { $var = 1; } -var_dump(filter_data("data", FILTER_CALLBACK, "test2")); -var_dump(filter_data("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, "test2")); -var_dump(filter_data("", FILTER_CALLBACK, "test2")); +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test2"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test2"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test2"))); /* unsetting data */ function test3(&$var) { unset($var); } -var_dump(filter_data("data", FILTER_CALLBACK, "test3")); -var_dump(filter_data("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, "test3")); -var_dump(filter_data("", FILTER_CALLBACK, "test3")); +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test3"))); +var_dump(filter_var("~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?\"}{:", FILTER_CALLBACK, array("options"=>"test3"))); +var_dump(filter_var("", FILTER_CALLBACK, array("options"=>"test3"))); /* unset data and return value */ function test4(&$var) { @@ -58,7 +58,7 @@ function test4(&$var) { return 1; } -var_dump(filter_data("data", FILTER_CALLBACK, "test4")); +var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test4"))); /* thrown exception in the callback */ function test5(&$var) { @@ -66,7 +66,7 @@ function test5(&$var) { } try { - var_dump(filter_data("data", FILTER_CALLBACK, "test5")); + var_dump(filter_var("data", FILTER_CALLBACK, array("options"=>"test5"))); } catch (Exception $e) { var_dump($e->getMessage()); } @@ -78,13 +78,13 @@ string(4) "DATA" string(46) "~!@#$%^&*()_QWERTYUIOPASDFGHJKLZXCVBNM<>>?"}{:" string(0) "" -Warning: filter_data(): First argument is expected to be a valid callback in %s on line %d +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d NULL -Warning: filter_data(): First argument is expected to be a valid callback in %s on line %d +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d NULL -Warning: filter_data(): First argument is expected to be a valid callback in %s on line %d +Warning: filter_var(): First argument is expected to be a valid callback in %s on line %d NULL string(4) "data" string(46) "~!@#$%^&*()_qwertyuiopasdfghjklzxcvbnm<>>?"}{:" diff --git a/ext/filter/tests/030.phpt b/ext/filter/tests/030.phpt index ff4ea3930b..97b62b9e26 100644 --- a/ext/filter/tests/030.phpt +++ b/ext/filter/tests/030.phpt @@ -1,5 +1,5 @@ --TEST-- -filter_data() and IPv6 +filter_var() and IPv6 --FILE-- true ); foreach ($ipv6_test as $ip => $exp) { - $out = filter_data($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); + $out = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); $out = (int) ($out === false ? 0 : 1); if ($exp != $out) { echo "$ip failed\n"; diff --git a/ext/filter/tests/031.phpt b/ext/filter/tests/031.phpt index a743291612..74883b8b26 100644 --- a/ext/filter/tests/031.phpt +++ b/ext/filter/tests/031.phpt @@ -1,5 +1,5 @@ --TEST-- -filter_data() and FLOAT +filter_var() and FLOAT --FILE-- $dec) { - $out = filter_data($float, FILTER_VALIDATE_FLOAT, array('decimal' => $dec)); + $out = filter_var($float, FILTER_VALIDATE_FLOAT, array("options"=>array('decimal' => $dec))); var_dump($out); } @@ -49,6 +49,6 @@ bool(false) float(1.234) float(1.234) -Warning: filter_data(): decimal separator must be one char in %s on line %d +Warning: filter_var(): decimal separator must be one char in %s on line %d bool(false) bool(false) diff --git a/ext/filter/tests/032.phpt b/ext/filter/tests/032.phpt index aae51512f1..cc6abd4f0e 100644 --- a/ext/filter/tests/032.phpt +++ b/ext/filter/tests/032.phpt @@ -13,23 +13,23 @@ $data = array( $args = array( 'product_id' => FILTER_SANITIZE_ENCODED, 'component' => array(//'filter' => FILTER_VALIDATE_INT, - 'flags' => FILTER_FLAG_ARRAY, + 'flags' => FILTER_FORCE_ARRAY, 'options' => array("min_range"=>1, "max_range"=>10) ), 'versions' => array( 'filter' => FILTER_SANITIZE_ENCODED, - 'flags' => FILTER_FLAG_SCALAR, + 'flags' => FILTER_REQUIRE_SCALAR, ), 'doesnotexist' => FILTER_VALIDATE_INT, 'testscalar' => FILTER_VALIDATE_INT, 'testarray' => array( 'filter' => FILTER_VALIDATE_INT, - 'flags' => FILTER_FLAG_ARRAY, + 'flags' => FILTER_FORCE_ARRAY, ) ); -$myinputs = input_get_args(INPUT_DATA, $args, $data); +$myinputs = filter_var_array($data, $args); var_dump($myinputs); ?> --EXPECT-- diff --git a/ext/filter/tests/033.phpt b/ext/filter/tests/033.phpt index 16ef53e6af..2a679d50c1 100644 --- a/ext/filter/tests/033.phpt +++ b/ext/filter/tests/033.phpt @@ -1,5 +1,5 @@ --TEST-- -Test all filters returned by input_filters_list() +Test all filters returned by filter_list() --FILE-- $d) $result[$k] = filter_data($d,input_name_to_filter($filter),array("regexp"=>'/^O.*/')); + foreach($data as $k=>$d) $result[$k] = filter_var($d,filter_id($filter),array("options"=>array("regexp"=>'/^O.*/'))); } else { - foreach($data as $k=>$d) $result[$k] = filter_data($d,input_name_to_filter($filter),"test"); + foreach($data as $k=>$d) $result[$k] = filter_var($d,filter_id($filter),array("options"=>"test")); } printf("%-20s",$filter); printf("%-5s",$result[0]); diff --git a/ext/filter/tests/034.phpt b/ext/filter/tests/034.phpt index 7854f904ba..d6f4e846ff 100644 --- a/ext/filter/tests/034.phpt +++ b/ext/filter/tests/034.phpt @@ -19,7 +19,7 @@ $booleans = array( ); foreach($booleans as $val=>$exp) { - $res =filter_data($val, FILTER_VALIDATE_BOOLEAN); + $res =filter_var($val, FILTER_VALIDATE_BOOLEAN); if ($res !== $exp) { echo "$val failed,'$exp' expect, '$res' received.\n"; } diff --git a/ext/filter/tests/035.phpt b/ext/filter/tests/035.phpt index 2ec9f95e51..e85444322d 100644 --- a/ext/filter/tests/035.phpt +++ b/ext/filter/tests/035.phpt @@ -1,24 +1,23 @@ --TEST-- -GET/POST/REQUEST Test with input_get +GET/POST/REQUEST Test with input_filter --POST-- d=379 --GET-- ar[elm1]=1234&ar[elm2]=0660&a=0234 --FILE-- FILTER_FLAG_ALLOW_OCTAL)); +$ret = filter_input(INPUT_GET, 'a', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_OCTAL)); var_dump($ret); -$ret = input_get(INPUT_GET, 'ar', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ARRAY)); +$ret = filter_input(INPUT_GET, 'ar', FILTER_VALIDATE_INT, array('flags'=>FILTER_REQUIRE_ARRAY)); var_dump($ret); -$ret = input_get(INPUT_GET, 'ar', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_OCTAL|FILTER_FLAG_ARRAY)); +$ret = filter_input(INPUT_GET, 'ar', FILTER_VALIDATE_INT, array('flags'=>FILTER_FLAG_ALLOW_OCTAL|FILTER_REQUIRE_ARRAY)); var_dump($ret); - ?> --EXPECT-- bool(false) diff --git a/ext/filter/tests/036.phpt b/ext/filter/tests/036.phpt index 09bb8c8ec3..954326661d 100644 --- a/ext/filter/tests/036.phpt +++ b/ext/filter/tests/036.phpt @@ -15,7 +15,7 @@ $args = array(); $args["test1"] = FILTER_VALIDATE_INT; $args["test2"] = FILTER_VALIDATE_INT; -$ret = input_get_args(INPUT_DATA, $args, $data); +$ret = filter_var_array($data, $args); var_dump($ret); var_dump($data); //should be separated, i.e. not reference anymore. looks like we can't change this, or it'd change the original zval instead.. var_dump($var); //should be still string(1) "1" diff --git a/ext/filter/tests/037.phpt b/ext/filter/tests/037.phpt index 5e5dc26f84..9e91288cb8 100644 --- a/ext/filter/tests/037.phpt +++ b/ext/filter/tests/037.phpt @@ -5,18 +5,18 @@ a=1&b=2 --FILE-- 'myfunc')); echo "\n"; -echo input_get(INPUT_GET, 'b', FILTER_VALIDATE_INT); +echo filter_input(INPUT_GET, 'b', FILTER_VALIDATE_INT); echo "\n"; $data = "data"; -echo filter_data($data, FILTER_CALLBACK, 'myfunc'); +echo filter_var($data, FILTER_CALLBACK, array("options"=>'myfunc')); echo "\n"; -$res = input_get_args(INPUT_GET, array( +$res = filter_input_array(INPUT_GET, array( 'a' => array( 'filter' => FILTER_CALLBACK, 'options' => 'myfunc' diff --git a/ext/filter/tests/bug7586.phpt b/ext/filter/tests/bug7586.phpt index ff29b0cab2..d9ea723f4c 100644 --- a/ext/filter/tests/bug7586.phpt +++ b/ext/filter/tests/bug7586.phpt @@ -12,22 +12,22 @@ $data = array( $args = array( 'product_id' => FILTER_SANITIZE_ENCODED, - 'component' => array('flags' => FILTER_FLAG_ARRAY, + 'component' => array('flags' => FILTER_FORCE_ARRAY, 'options' => array("min_range"=>1, "max_range"=>10) ), 'versions' => array( 'filter' => FILTER_SANITIZE_ENCODED, - 'flags' => FILTER_FLAG_SCALAR, + 'flags' => FILTER_REQUIRE_SCALAR, ), 'doesnotexist' => FILTER_VALIDATE_INT, 'testscalar' => FILTER_VALIDATE_INT, 'testarray' => array( 'filter' => FILTER_VALIDATE_INT, - 'flags' => FILTER_FLAG_ARRAY, + 'flags' => FILTER_FORCE_ARRAY, ) ); -$out = input_get_args(INPUT_DATA, $args, $data); +$out = filter_var_array($data, $args); var_dump($out); ?> --EXPECTF-- diff --git a/ext/filter/tests/bug7715.phpt b/ext/filter/tests/bug7715.phpt index 864a41b1fb..3372f756d6 100644 --- a/ext/filter/tests/bug7715.phpt +++ b/ext/filter/tests/bug7715.phpt @@ -13,7 +13,7 @@ $data = array( '02.324' ); foreach ($data as $val) { - $res = filter_data($val, FILTER_VALIDATE_FLOAT); + $res = filter_var($val, FILTER_VALIDATE_FLOAT); var_dump($res); } echo "\n"; diff --git a/ext/filter/tests/bug7733.phpt b/ext/filter/tests/bug7733.phpt index 7b8c4634ca..07b4b0c722 100644 --- a/ext/filter/tests/bug7733.phpt +++ b/ext/filter/tests/bug7733.phpt @@ -9,7 +9,7 @@ $data = array( 'E-2', '+E2' ); -$out = filter_data($data, FILTER_VALIDATE_FLOAT); +$out = filter_var($data, FILTER_VALIDATE_FLOAT, FILTER_REQUIRE_ARRAY); var_dump($out); ?> --EXPECTF-- diff --git a/ext/filter/tests/bug8315.phpt b/ext/filter/tests/bug8315.phpt index e5c6bc1c37..35d9f8950a 100644 --- a/ext/filter/tests/bug8315.phpt +++ b/ext/filter/tests/bug8315.phpt @@ -4,9 +4,9 @@ bug 8315, NULL values halt the validation --EXPECTF-- bool(false) diff --git a/ext/filter/tests/filter_data.phpt b/ext/filter/tests/filter_data.phpt index 2fdd823438..14e8545c9b 100644 --- a/ext/filter/tests/filter_data.phpt +++ b/ext/filter/tests/filter_data.phpt @@ -1,42 +1,42 @@ --TEST-- -Simple filter_data() tests +Simple filter_var() tests --FILE-- --EXPECT--