Heim >Backend-Entwicklung >PHP-Tutorial >Wie ersetzt man veraltete PHP 8.1-String-Bereinigungsfilter (FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED)?
Veraltete Filterkonstanten ersetzen: FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED
Mit PHP 8.1 sind die Konstantenfilter FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED geworden veraltet. Dies hat bei Entwicklern, die diese Filter zuvor zur String-Bereinigung verwendet haben, Bedenken geweckt.
Der Grund für die Ablehnung
Diese Filterkonstanten wurden als verwirrend und unklar in ihrem Zweck erachtet. Ihre Funktionalität überschnitt sich mit der anderer String-Filter, was zu Verwirrung und inkonsistenten Ergebnissen führte. Die PHP-Community hat beschlossen, ihren Support einzustellen.
Ersatzoptionen
Es stehen mehrere Optionen zur Verfügung, um diese veralteten Filter zu ersetzen:
Der folgende Code demonstriert eine Polyfill-Funktion für filter_string_polyfill:
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); }
Denken Sie daran, dass das Bereinigen von Eingaben weniger effektiv ist als das Escapen von Ausgaben. Konzentrieren Sie sich auf die Codierung potenziell gefährdeter Daten, bevor sie angezeigt oder verwendet werden.
Das obige ist der detaillierte Inhalt vonWie ersetzt man veraltete PHP 8.1-String-Bereinigungsfilter (FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!