htmlentities
i htmlspecialchars
służą do generowania wyjścia HTML który jest wysyłany do przeglądarki.
Przygotowane zestawienia służą do generowania/wysyłania zapytań do silnika bazy danych .
Oba pozwalają na ucieczkę danych; ale nie uciekają w tym samym celu.
Więc nie, przygotowane instrukcje (dla zapytań SQL) nie przeszkadzają w prawidłowym używaniu htmlspecialchars
/htmlentities
(do generowania HTML)
Informacje o strip_tags
:usunie tagi z ciągu, gdzie htmlspecialchars
przekształci je w encje HTML.
Te dwie funkcje nie robią tego samego; powinieneś wybrać, którego chcesz użyć w zależności od Twoich potrzeb / tego, co chcesz uzyskać.
Na przykład za pomocą tego fragmentu kodu:
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
Otrzymasz taki rodzaj danych wyjściowych:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
W pierwszym przypadku brak tagu; w drugim, odpowiednio uciekł.
A z wyjściem HTML:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
Otrzymasz:
this is a test
this is a <strong>test</strong>
Którą z nich chcesz? To to ważne pytanie ;-)