Из документации PHP для htmlentities :
Эта функция идентична htmlspecialchars()
во всех отношениях, кроме htmlentities()
, все символы, которые имеют эквиваленты сущностей символов HTML, транслируются в эти сущности.
Из документации PHP для htmlspecialchars :
Некоторые символы имеют особое значение в HTML и должны быть представлены объектами HTML, если они хотят сохранить свои значения. Эта функция возвращает строку с некоторыми из этих преобразований; сделанные переводы являются наиболее полезными для повседневного веб-программирования. Если вам требуется перевод всех сущностей символов HTML, используйте htmlentities()
.
Разница в том, что кодируется. Возможные варианты: все (сущности) или «специальные» символы, такие как амперсанд, двойные и одинарные кавычки, меньше или больше (спецчары).
Я предпочитаю использовать htmlspecialchars
, когда это возможно.
Например:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^