Использование htmlspecialchars
достаточно для кодирования специальных символов HTML. htmlentities
необходимо, только если вы хотите использовать символы, которые не могут быть закодированы с использованием используемой вами кодировки символов.
Но обязательно укажите параметр quote_style , если хотите использовать выходные данные в значении атрибута, заключенном в одинарные кавычки, например:
echo "<input type='text' value='".htmlspecialchars($_GET['foobar'], ENT_QUOTES)."'>";
И указать параметр charset , когда вы используете кодировку символов, отличную от ISO 8859-1:
echo htmlspecialchars($_GET['foobar'], ENT_QUOTES, 'UTF-8');