Я прочитал их документацию, но я до сих пор не понимаю, когда использовать каждую из них и их разницу.
Давайте рассмотрим ситуацию с общей строкой в переменной и ее нужно эхо-код внутри HTML-кода. Если у него есть какая-либо разметка HTML, я хочу, чтобы он преобразовывался в HTML-код (<
заменен на <
&
заменен на &
. Если у него есть специальные символы UTF, которые недоступны в HTML-коде, он заменяется на HTML-номер (•
заменен на •
).
Какая лучшая функция для этого?
Более трудная потребность: непечатаемые символы, такие как \n
, char (10), char (13) и т.д., Заменяются их номером кода, в случае, если строка печатается внутри <pre>
или любого специального текстового поля, сбрасывали.
htmlentities
- обходной путь для того, чтобы не задавать тип символа документа должным образом. htmlspecialchars
- это правильная функция для простого написания текста в HTML-документе.
Что касается вашего второго вопроса, я думаю, вы ищете addcslashes.
htmlentities()
это вызывает гораздо больше проблем, чем решает, просто используйте utf-8 в качестве набора символов (из таблиц базы данных, коннектора, контроллеров приложений и представлений).htmlspecialchars()
идеально подходит для выхода из html. Если вам нужно что-то еще, попробуйте такую библиотеку, как htmlpurifier: htmlpurifier.org