Значение перменной как код php или текст из файла как код

Здравствуйте.
Заранее извиняюсь. Почитал рекомендации к публикации, но вот ответ уже 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:
  1. <?php
  2. function eval_php($matches){
  3.    ob_start();
  4.    eval($matches[1]);
  5.    $code = ob_get_contents();
  6.    ob_end_clean();
  7.    return $code;
  8. }
  9. function replace_php($string){
  10.    return preg_replace_callback(«#<\?php(.*)\?>#Usi», «eval_php», $string);
  11. }
  12. $var1 = ‘<?php echo «123», «456»; ?>’;
  13. $var2 = ‘<?php
  14. function s(int $a, int $b = 0):int {
  15.  $c = $a + $b;
  16.  return $c;
  17. }
  18. echo s(3, 4);
  19. ?>’;
  20. $string = «
  21. <p>Какой-то текст со вставкой php-кода из переменной \$var1: $var1</p>
  22. <p>Еще текст со вставкой php-кода из переменной \$var2: $var2</p>
  23. <p>Не делайте так, если не контролируете на 100% источник кода</p>
  24. «;
  25. echo replace_php($string);
  26. /*
  27. Какой-то текст со вставкой php-кода из переменной $var1: 123456
  28.  
  29. Еще текст со вставкой php-кода из переменной $var2: 7
  30.  
  31. Не делайте так, если не контролируете на 100% источник кода
  32. */
  33. ?>
 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *