htmlentities
и htmlspecialchars
используются для генерации HTML-вывода , отправляемого в браузер.
Подготовленные операторы используются для генерации / отправки запросов к Механизму базы данных .
Оба позволяют экранировать данные; но они не спасаются для одного и того же использования.
Итак, нет, подготовленные операторы (для запросов SQL) не мешают вам правильно использовать htmlspecialchars
/ htmlentities
(для генерации HTML)
О strip_tags
: удаляет теги из строки, где htmlspecialchars
преобразует их в объекты HTML.
Эти две функции не делают одно и то же; Вы должны выбрать, какой из них использовать, в зависимости от ваших потребностей / того, что вы хотите получить.
Например, с этим фрагментом кода:
$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));
Вы получите такой вывод:
string 'this is a test' (length=14)
string 'this is a <strong>test</strong>' (length=43)
В первом случае нет тега; во втором - правильно сбежавшие.
И с выводом HTML:
$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);
Вы получите:
this is a test
this is a <strong>test</strong>
Какой из них вы хотите? Что - важный вопрос ; -)