У меня есть поле для комментариев. Если я наберу что-то вроде этого
aa @Martins <aabb>
В базе данных я сохраняю это как:
aa <span class="highlight" contenteditable="false">@Martins Vilskersts</span> <aabb><span></span>
А пока я использую это, чтобы показать это:
$str = strip_tags(htmlspecialchars_decode(html_entity_decode($my_string_from_database)), '<br><br/>');
//here is some replace for links functionality
$replace = '<a href="javascript:;" class="..." id="..." ></a>';
$str = str_replace($link->tag, $replace, $str);
echo $str;
И я получаю такой результат:
aa @Martins
Но я хочу видеть это так:
aa @Martins <aabb> -[with @ functionality, but with some random <aaa><bbb> tags as plain text. Any idea?]
ИСПОЛЬЗОВАТЬ ЭТОТ:
просто замени <
от <
; а также >
от >
;
Держите это также в середине:
‘&'(амперсанд) становится &
«» (двойная кавычка) становится " когда ENT_NOQUOTES не установлен.
«» (одинарная кавычка) становится «только когда ENT_QUOTES установлен.
‘<‘(меньше чем) становится <
‘>’ (больше чем) становится >
Если вы просто буквально выводите строку как сохраненную в базе данных, без использования htmlspecialchars_decode, strip_tags, html_entity_encode и т. Д., То она получится правильно.
Вы уже сохранили части, которые вы хотите видеть в виде закодированных символов, и те части, которые должны работать как необработанный HTML в вашей базе данных.