弃用常量 FILTER_SANITIZE_STRING
随着 PHP 8.1 的发布,常量 FILTER_SANITIZE_STRING 已被弃用。这引起了以前依赖此过滤器来清理字符串输入的开发人员的担忧。
为什么 FILTER_SANITIZE_STRING 被弃用?
根据 PHP 社区的说法,FILTER_SANITIZE_STRING 有一个不清楚的地方目的并可能导致混乱。它删除了任意内容,但没有对其功能提供明确的解释。此外,它已被更有效的字符串清理技术所取代。
你可以用什么替换它?
有几个选项可以替换已弃用的FILTER_SANITIZE_STRING:
示例Polyfill
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); }
最佳实践:转义输出
需要强调的是,清理应该应用于输出数据,而不是输入数据。通过转义输出中的特殊字符,您可以防止恶意脚本或数据影响您的应用程序。
以上是替换已弃用的 PHP FILTER_SANITIZE_STRING 的最佳方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!