Хотите использовать htmlspecialchars, но гиперссылки должны быть доступны для просмотра — PHP, HTML

Привет, я внедряю систему комментариев. Когда я снова показываю свои комментарии и статьи, я хочу использовать htmlspecialchars но я хочу, чтобы мои гиперссылки можно было нажимать.

Пример комментария:

Мой любимый веб-сайт < www.facebook.com >.

Затем я бэкэнд, я изменяю это:

Мой любимый веб-сайт < <a href="www.facebook.com">www.facebook.com</a> >

и сохранить в базе данных.

Теперь я показываю этот комментарий, если я использовал эхо htmlspecialchars($message) сообщение будет

Мой любимый веб-сайт < <a href="www.facebook.com">www.facebook.com</a> >

Но я хочу, чтобы моя ссылка была гиперссылкой, но другая часть должна использовать htmlspecailchars

Я могу проверить наличие гиперссылки в строке и выполнить некоторую сложную логику, чтобы добавить htmlspecailchars только в другие части. У меня два вопроса.

  1. Полезно ли добавлять гиперссылку на базу данных или ее следует создавать при просмотре данных?

2. Как лучше использовать htmlspecialchars только для строк, отличных от гиперссылок?

как исключить только <a> теги

в htmlentities функция, которую я видел опционально character-set параметр Строка, указывающая, какой набор символов использовать. Есть ли что-нибудь, как исключить набор символов.

заранее спасибо

-1

Решение

В вашей базе данных должны храниться необработанные данные (точно очищенные, но не преобразованные). Таким образом, преобразование link → link должно происходить как раз перед просмотром, а не перед хранением БД.

Что касается того, почему вы должны хранить необработанные данные: ничто не говорит вам, что однажды вы не будете использовать свои данные в других целях, кроме HTML, поэтому форматирование должно быть очищено для этого другого использования.

Подводить итоги:

  • Вы должны хранить сырье (продезинфицировать для SQL)
  • Получить сырье
  • Дезинфицировать HTML
  • Преобразовать ссылки
  • дисплей
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]