PHP код выводится как текст
Имеется таблица в базе, которая хранит различные HTML-блоки вместе с параметром (PHP-кодом, который должен при выводе подставлять значения из массива).

Однако при выводе этого кода через ECHO на страницу я имею
<a href="<?=$info['floating-button_link']?>" class="floating-button__module">
<img class="floating-button__module-img" src="<?=$info['floating-button_img']?>">
</a>
Каким образом реализовать вывод кода на страницу, чтобы PHP код внутри компилировался?
Ответы (1 шт):
Автор решения: Gust
→ Ссылка
вариант с созданием временного файла:
$info = array( // заранее оъявленная переменная $info; массив; с ключами floating-button_link и floating-button_img
'floating-button_link' => 'ssylka',
'floating-button_img' => 'cartinka',
);
$db_string_result = '<a href="<?=$info[\'floating-button_link\']?>" class="floating-button__module">
<img class="floating-button__module-img" src="<?=$info[\'floating-button_img\']?>">
</a>'; // строка кода из БД
file_put_contents('tmp.php',$db_string_result); // сохранить в файл tmp.php
include 'tmp.php'; // подключить файл tmp.php
unlink('tmp.php'); // удалить файл tmp.php
Переменная $info должна быть известна до этапа include 'tmp.php';.
Вариант с поиском, заменой и eval()
$result_string = preg_replace_callback("#\<\?\=(.*?)\?\>#",function($find)use($info){
return eval("return {$find[1]};");
},$db_string_result);
print $result_string;