Я использую SmpleMDE как мой редактор WYSIWYG и Parsedown библиотека для разбора уценки и преобразования ее в HTML.
<?php echo $this->parsedown->text($post->content); ?>
Все отлично работает, единственная проблема в том, что я хочу показать
YouTube видео в контенте, добавив встроенный <iframe>
,
Согласно этому ответу Youtube видео и текст рядом в Markdown Я могу просто добавить YouTube <iframe>
прямо к моему содержанию, однако вывод показывает html код, сбежавший
<p><iframe width="560" height="315" src="<a href="https://www.youtube.com/embed/7GqClqvlObY">https://www.youtube.com/embed/7GqClqvlObY</a>" frameborder="0" allowfullscreen></iframe></p>
Содержимое в базе данных хранится так
Lorem ipsum .....
<iframe width="560" height="315" src="https://www.youtube.com/embed/7GqClqvlObY" frameborder="0" allowfullscreen></iframe>Lorem ipsum .....
Как я могу это исправить, чтобы встраиваемый код с YouTube отображался правильно?
Поскольку проблема заключается в том, что строки хранятся в базе данных как экранированные, попробуйте следующее:
<?php echo $this->parsedown->text(htmlspecialchars_decode($post->content); ?>
Кроме того, взгляните на руководство, Возможно, вам придется добавить флаг в зависимости от того, как ваши строки закодированы / экранированы.
Других решений пока нет …