Хорошо ли использовать filter_var с htmlentities в PHP?

Я проверяю переменные запроса POST, и я делал вот так:

$email = htmlentities($_POST['email']); 

Но теперь я искал и узнал о filter_var, и я делаю проверку следующим образом:

 $email = filter_var(htmlentities($_POST['email']), FILTER_SANITIZE_EMAIL); 

Какой путь лучше? и для всех типов ввода [телефон – строка – и т. д.] Что мне нужно использовать?

Извините, что я новичок, и я изучил руководство, но я не мог много понять.

Спасибо за помощь.

Используйте только следующую строку для писем:

 filter_input(INPUT_POST, "email", FILTER_SANITIZE_EMAIL); 

Это позволит правильно удалить нелегальные символы с символом электронной почты (например ; и сохранить юридические данные, такие как & или +

Использование htmlentities может превратить юридический адрес электронной почты в незаконный, который FILTER_SANITIZE_EMAIL будет разорвать.

Если вы имеете дело с пользовательским вводом для меток или описаний, вы можете сохранить указанный вход нормально (используя подготовленные операторы, чтобы позволить БД избежать ввода правильно) и использовать htmlentities при отображении его на странице . В качестве альтернативы вы можете использовать:

 filter_input(INPUT_POST, "description", FILTER_SANITIZE_STRING); 

Эта строка дезинфицирует теги фильтров.

Вы можете проверить больше фильтров по адресу: http://php.net/manual/en/filter.filters.sanitize.php