Здравствуйте. Заранее извиняюсь. Почитал рекомендации к публикации, но вот ответ уже 2 дня ищу. Можно считать что я новичок, так как хоть и имеется опыт в несколько лет в php, это было больше похоже на факультатив к административной работе. Потому могу элементарно не знать каких-то простых команд из php. К сути: Мне необходимо значение переменной выполнять как код. Долгое время гуглю и исследую дакдакго, но в основном результаты идут с формулировкой как присвоить значения переменной, как вызвать переменную, как вызвать код используя заголовки http итп. Возможно ли как то выполнить код из переменной, например: $var = 'echo "123"; echo "456"'; Если возможно, то можно ли тогда вызывать функции с передачей параметров? $var2 = 'function s(int $a, int $b = 0):int{$c = $a + $b; echo $c} echo s(3, 4);'; Какие команды изучить? Спасибо
Теоретически, можно вызвать eval, можно запустить интерпретатор, как внешний процесс. Практически, лучше такого избегать, особенно если этот код будет приходить от пользователя. Это нехилая такая дыра в безопасности
Если на 100% уверены в источнике кода, то можно как-то так: PHP: <?php function eval_php($matches){ ob_start(); eval($matches[1]); $code = ob_get_contents(); ob_end_clean(); return $code; } function replace_php($string){ return preg_replace_callback("#<\?php(.*)\?>#Usi", "eval_php", $string); } $var1 = '<?php echo "123", "456"; ?>'; $var2 = '<?php function s(int $a, int $b = 0):int { $c = $a + $b; return $c; } echo s(3, 4); ?>'; $string = " <p>Какой-то текст со вставкой php-кода из переменной \$var1: $var1</p> <p>Еще текст со вставкой php-кода из переменной \$var2: $var2</p> <p>Не делайте так, если не контролируете на 100% источник кода</p> "; echo replace_php($string); /* Какой-то текст со вставкой php-кода из переменной $var1: 123456 Еще текст со вставкой php-кода из переменной $var2: 7 Не делайте так, если не контролируете на 100% источник кода */ ?>