SimpleMDE - Markdown для встраивания видео с Youtube

Я использую SmpleMDE в качестве редактора WYSIWYG и библиотеку Parsedown для анализа уценки и преобразования ее в HTML.

<?php echo $this->parsedown->text($post->content); ?>

Все работает нормально, единственная проблема заключается в том, что я хочу показать YouTube видео в контенте, добавив встроенный <iframe>,

Согласно этому ответу Youtube видео и текст рядом друг с другом в Markdown я могу просто добавить YouTube <iframe> прямо к моему содержанию, однако вывод показывает, что код html избежал

<p>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;<a href="https://www.youtube.com/embed/7GqClqvlObY">https://www.youtube.com/embed/7GqClqvlObY</a>&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</p>

Содержимое в базе данных хранится так

Lorem ipsum .....

&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/7GqClqvlObY" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;


Lorem ipsum .....

Как я могу это исправить, чтобы встраиваемый код с YouTube отображался правильно?

1 ответ

Решение

Поскольку проблема заключается в том, что строки хранятся в базе данных как экранированные, попробуйте следующее:

<?php echo $this->parsedown->text(htmlspecialchars_decode($post->content); ?>

Кроме того, взгляните на руководство, вам может потребоваться добавить флаг в зависимости от того, как ваши строки закодированы / экранированы.

Другие вопросы по тегам