drdf: Filter String Problem

Beitrag lesen

Hallo @portseven,

Deine if ist nicht Typesicher.
Die Filterung von '<<<<TEXTEXT' ergibt einen ''(Leerstring) der als FALSE gewertet wird.

var_dump(filter_var('<<<<TEXTEXT', FILTER_SANITIZE_STRING)); // string ''         (length=0)

var_dump(filter_var('TEXTTEXT<<<', FILTER_SANITIZE_STRING)); // string 'TEXTTEXT' (length=8)

filter_var() gibt im Fehlerfall ein FALSE zurück. Sonst die gefilterten Daten.


Vllt hilft folgendes noch beim Verständnis:

$text = 'Lorem <span>ipsum</span>';

$foo = filter_var($text, FILTER_SANITIZE_STRING);

if ($foo === FALSE) {
    echo 'ERROR: die Filterung ist fehlgeschlagen.';
}

if ($foo !== $text) {
    echo 'Der Text wurde erfolgreich bereinigt und lautet nun: "'. $foo . '"';
}

if ($foo === $text) {
    echo 'Der Text war von Beginn an rein und wurde daher nicht verändert.';
}