Привет, я внедряю систему комментариев. Когда я снова показываю свои комментарии и статьи, я хочу использовать 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 только в другие части. У меня два вопроса.
2. Как лучше использовать htmlspecialchars только для строк, отличных от гиперссылок?
как исключить только <a>
теги
в htmlentities
функция, которую я видел опционально character-set
параметр Строка, указывающая, какой набор символов использовать. Есть ли что-нибудь, как исключить набор символов.
заранее спасибо
В вашей базе данных должны храниться необработанные данные (точно очищенные, но не преобразованные). Таким образом, преобразование link → link должно происходить как раз перед просмотром, а не перед хранением БД.
Что касается того, почему вы должны хранить необработанные данные: ничто не говорит вам, что однажды вы не будете использовать свои данные в других целях, кроме HTML, поэтому форматирование должно быть очищено для этого другого использования.
Подводить итоги:
Других решений пока нет …