diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2018-07-16 22:53:24 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2018-07-17 10:45:46 +0200 |
commit | c0407d95f7bd9027d087cf8cc0f5a109b22430eb (patch) | |
tree | ce7fa3739ec8d3dc4caf2efdbbb176d5d9c9c649 /ext | |
parent | ffa41787d58580abc41849bdeb5fd19f4e69e4f3 (diff) | |
download | php-git-c0407d95f7bd9027d087cf8cc0f5a109b22430eb.tar.gz |
Deprecate explicit use of FILTER_FLAG_SCHEME|HOST_REQUIRED
As of PHP 5.2.1 FILTER_VALIDATE_URL implies FILTER_FLAG_SCHEME_REQUIRED
| FILTER_FLAG_HOST_REQUIRED, which makes these constants useless at
best, if not even misleading. Therefore we deprecate the explicit use
of these constants for FILTER_VALIDATE_URL, to pave the way for their
eventual removal.
See <https://wiki.php.net/rfc/deprecations_php_7_3#filter_flag_scheme_required_and_filter_flag_host_required>.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/filter/logical_filters.c | 5 | ||||
-rw-r--r-- | ext/filter/tests/deprecated.phpt | 19 |
2 files changed, 24 insertions, 0 deletions
diff --git a/ext/filter/logical_filters.c b/ext/filter/logical_filters.c index 0fe324268d..525cd0d097 100644 --- a/ext/filter/logical_filters.c +++ b/ext/filter/logical_filters.c @@ -539,6 +539,11 @@ void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ php_url *url; size_t old_len = Z_STRLEN_P(value); + if (flags & (FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED)) { + php_error_docref(NULL, E_DEPRECATED, + "explicit use of FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is deprecated"); + } + php_filter_url(value, flags, option_array, charset); if (Z_TYPE_P(value) != IS_STRING || old_len != Z_STRLEN_P(value)) { diff --git a/ext/filter/tests/deprecated.phpt b/ext/filter/tests/deprecated.phpt new file mode 100644 index 0000000000..a7771056ef --- /dev/null +++ b/ext/filter/tests/deprecated.phpt @@ -0,0 +1,19 @@ +--TEST-- +FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED are deprecated +--SKIPIF-- +<?php +if (!extension_loaded('filter')) die('skip filter extension not available'); +?> +--FILE-- +<?php +var_dump(filter_var('//example.com/', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED)); +var_dump(filter_var('http://', FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED)); +?> +===DONE=== +--EXPECTF-- +Deprecated: filter_var(): explicit use of FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is deprecated in %s +bool(false) + +Deprecated: filter_var(): explicit use of FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is deprecated in %s +bool(false) +===DONE=== |