Решаю такую задачу в написании своего фреймворка и cms: из базы данных подгружаются небольшие фрагменты html кода, а также php-скрипты.
В базе запись выглядит так, например:
<div style="font-size: 18px;"><? echo "тест";?></div>
При выводе, пишу так подключение к базе и вывод данных:
$where = 'id = 1';
$Current_page = $BDConnect->select('pages', Array('*'), $where);
foreach ($Current_page as $html) echo $html['text_page'];
В результате на странице пишет тектом текст:
<div><? echo "тест";</div>
Как сделать, чтобы это был не текст, а часть html-кода?
Вам нужно echo заменить на eval(). И, так как у Вас это HTML код, то обрамить его тегами
foreach ($Current_page as $html)
eval('?> ' . $html['text_page']);
но помните, что функция eval() очень опасна из-за возможности исполнить любой код
Из документации
Предостережение Использование eval() может быть очень опасно, поскольку позволяет исполнить произвольный код. Использование данной функции не рекомендуется. Если вы полностью убеждены, что нет иного способа воспроизведения необходимого функционала, обратите особое внимание на исключения обработки таким образом данных, вводимых пользователем, без специальной обработки и валидации.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники