У меня есть вход, где пользователи могут ввести свой HTML, который позже отображается как часть тела. Чтобы убедиться, что введенный пользователем HTML-файл правильно закрыт, я использую этот код:
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($body);
$dom->removeChild($dom->doctype);
$body = $dom->saveHTML();
$body = str_replace('<html><body>', '', $body);
$body = str_replace('</body></html>', '', $body);
$body = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $body)));
Теперь, если введенный пользователем контент содержит двойные кавычки («) или одинарные кавычки, это преобразует его в нечто вроде “
, который отображается как “
в html. Как убедиться, что специальные символы, такие как кавычки, отображаются правильно?
РЕДАКТИРОВАТЬ: Вот образец текста, который вставляется:
It is called a “buddy list,” “friend list” or “contact list." Users are typically alerted when someone on their list is online.
, который преобразуетсяв:
It is called a “buddy list,†“friend list†or “contact list." Users are typically alerted when someone on their list is online.