htmlentities
og htmlspecialchars
bruges til at generere HTML-output der sendes til browseren.
Forberedte udsagn bruges til at generere/sende forespørgsler til databasemotoren .
Begge tillader escape af data; men de slipper ikke for den samme brug.
Så nej, forberedte sætninger (til SQL-forespørgsler) forhindrer dig ikke i at bruge htmlspecialchars
korrekt /htmlentities
(til HTML-generering)
Om strip_tags
:det vil fjerne tags fra en streng, hvor htmlspecialchars
vil transformere dem til HTML-enheder.
De to funktioner gør ikke det samme; du bør vælge hvilken du vil bruge afhængigt af dine behov / hvad du ønsker at få.
For eksempel med dette stykke kode:
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
Du får denne type output:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
I det første tilfælde, ingen tag; i den anden, korrekt undslupne.
Og med et HTML-output:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
Du får:
this is a test
this is a <strong>test</strong>
Hvilken af dem vil du have? Det er det vigtige spørgsmål ;-)