htmlentities
und htmlspecialchars
werden verwendet, um die HTML-Ausgabe zu generieren die an den Browser gesendet wird.
Vorbereitete Anweisungen werden zum Generieren/Senden von Abfragen an die Datenbank-Engine verwendet .
Beide erlauben das Entweichen von Daten; aber sie werden nicht für dieselbe Verwendung maskiert.
Also, nein, vorbereitete Anweisungen (für SQL-Abfragen) hindern Sie nicht daran, htmlspecialchars
richtig zu verwenden /htmlentities
(für die HTML-Generierung)
Über strip_tags
:Es entfernt Tags aus einer Zeichenfolge, wobei htmlspecialchars
wandelt sie in HTML-Einheiten um.
Diese beiden Funktionen machen nicht dasselbe; Sie sollten je nach Ihren Bedürfnissen / dem, was Sie erhalten möchten, auswählen, welches Sie verwenden möchten.
Zum Beispiel mit diesem Stück Code:
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
Sie erhalten diese Art von Ausgabe:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
Im ersten Fall kein Tag; in der zweiten, richtig entkommene.
Und mit einer HTML-Ausgabe:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
Sie erhalten:
this is a test
this is a <strong>test</strong>
Welches davon willst du? Das ist die wichtige Frage ;-)