我一直在尝试编写一个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);
请提前帮助我解决这个问题。
答案 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();';