替换已弃用的过滤器常量:FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED
在 PHP 8.1 中,常量过滤器 FILTER_SANITIZE_STRING 和FILTER_SANITIZE_STRIPPED 已被弃用。这引起了以前使用这些过滤器进行字符串清理的开发人员的担忧。
弃用的原因
这些过滤器常量被认为令人困惑且其用途不明确。它们的功能与其他字符串过滤器重叠,导致混乱和不一致的结果。 PHP 社区决定停止支持。
替换选项
有多个选项可用于替换这些已弃用的过滤器:
以下代码演示了一个 polyfill 函数filter_string_polyfill:
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); }
请记住,清理输入不如转义输出有效。在显示或使用潜在易受攻击的数据之前,重点关注对其进行编码。
以上是如何替换已弃用的 PHP 8.1 字符串清理过滤器(FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED)?的详细内容。更多信息请关注PHP中文网其他相关文章!