变量错误中的Php标签

时间:2018-04-20 09:03:28

标签: php mysql

我一直在尝试编写一个php脚本,我想在一个变量中添加php代码,这需要我在变量中包含php标签,但是下面的代码给了我错误,因为php标签正在执行。< / p>

这是代码

$current .= " <?php";
$current .= '$CONF = array();';
$current .= '$CONF["host"] = "'.$mysql_host.'";';
$current .= '$CONF["user"] = "'.$mysql_user.'";';                                   
$current .= '$CONF["pass"] = "'.$mysql_pass.'";';
$current .= '$CONF["name"] = "'.$mysql_base.'";';
$current .= "?> ";
file_put_contents("includes/config.php", $current);

请提前帮助我解决这个问题。

2 个答案:

答案 0 :(得分:3)

不要手动生成PHP代码。这很乏味且容易出错。例如,如果$mysq_pass包含引号,则放在includes/config.php中的代码会出现语法错误并且无法编译。

使用var_export()为数据结构生成有效的PHP代码:

$current = "<?php\n" .
    '$CONF = '.
    // var_export() produces valid code only for the array
    var_export(array(
        'host' => $mysql_host,
        'user' => $mysql_user,
        'pass' => $mysql_pass,
        'name' => $mysql_base,
    ), true).         // 'true' tells it to return the code, to not echo it
    // There is no need to use the PHP closing tag
    ";\n"
;

file_put_contents("includes/config.php", $current);

查看实际操作:https://3v4l.org/G5ZoX

答案 1 :(得分:0)

您需要在前两行代码之间 提供Staff : -

space

您可以使用 其他方式

$current .= "<?php"; 
$current .= ' $CONF = array();';
//-----------^give space here------

为了更好的可读性 在每个代码行中添加新行,如下所示: -

$current .= "<?php ";
//----------------^give space here------ 
$current .= '$CONF = array();';