htmlentities
en htmlspecialchars
worden gebruikt om de HTML-uitvoer . te genereren die naar de browser wordt gestuurd.
Voorbereide instructies worden gebruikt om query's te genereren/verzenden naar de Database-engine .
Beide maken het ontsnappen van gegevens mogelijk; maar ze ontsnappen niet voor hetzelfde gebruik.
Dus nee, voorbereide instructies (voor SQL-query's) belet u niet om htmlspecialchars
correct te gebruiken /htmlentities
(voor HTML-generatie)
Over strip_tags
:het verwijdert tags uit een string, waar htmlspecialchars
zal ze transformeren naar HTML-entiteiten.
Die twee functies doen niet hetzelfde; je moet kiezen welke je wilt gebruiken, afhankelijk van je behoeften / wat je wilt krijgen.
Bijvoorbeeld met dit stukje code:
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
Je krijgt dit soort output:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
In het eerste geval geen tag; in de tweede, correct ontsnapte.
En, met een HTML-uitvoer:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
Je krijgt:
this is a test
this is a <strong>test</strong>
Welke van die wil je? Dat is de belangrijke vraag ;-)