PHP - 从eval()函数内部调用变量

时间:2018-02-03 16:18:53

标签: php mysql eval

首先,我知道使用eval()是一个糟糕的选择,
但是我的团队已经根据存储在数据库中的模板构建了一个应用程序 我被指定编辑一个模板,该模板应该在eval()函数之外的脚本中使用变量 这是一个代码示例:

的template.php

function template($arg)
{
   if($arg == "show")
   {
       $template = str_replace("\\'", "'", addslashes($row['template']));
   }
return $template;
}


    $row['template'] = "this is template from database that shows {$row[data]}";

$row[data] = {$variable};

show.php

<?php
  include 'template.php'
  $variable = "thisShouldAppear";
  eval("\$var = \"".template("show")."\";");
  echo $var;
?>



show.php中的输出是:

{$variable}

它应该显示:

  

thisShouldAppear

注意:

如果我从数据库外部分配变量,它可以工作,但我只能将其包含在数据库内的模板中。

  

示例:

<?php
  include 'template.php'
  $variable = "thisShouldAppear";
  $row[data] = "{$variable}";
  eval("\$var = \"".template("show")."\";");
  echo $var;
?>

在这种情况下它可以工作,但目的是让模板中的值不是来自脚本。

任何帮助都会非常感激,因为我的时间已经不合时宜了 谢谢。

0 个答案:

没有答案