1

我正在使用的系统有自己的安装页面来配置数据库连接。基本上,用户正在填写$_POST诸如此类的一些字段host, dbname, password。然后,一旦他继续进行,我想将所有这些变量存储在一个文件中。

最终文件应该是这样的:

<?php
    $config["db"]["host"] = "host";
    $config["db"]["username"] = "user";
    $config["db"]["password"] = "user_pass";
 ?>

但无论如何,输出是这样的:

<?php
    $config["db"]["host"] = "";
    $config["db"]["username"] = "";
    $config["db"]["password"] = "";
?>

所以似乎最后报价中的所有数据都消失了。这是我的代码:

$file = 'core/database.core.php';

    $content = "<?php \r\n";
    $content .= '$config["db"]["host"] = "' . $_POST['db_host'] . '";' . "\r\n";
    $content .= '$config["db"]["username"] = "' . $_POST['db_user'] . '";' . "\r\n";
    $content .= '$config["db"]["password"] = "' . $_POST['db_pass'] . '";' . "\r\n";
    $content .= "?>";

file_put_contents($file, $content);

$content 变量的 var 转储仅输出以下内容:

string(114) ""

浏览器中的源代码显示如下:

string(114) "<?php 
$config["db"]["host"] = "127.0.0.1";
$config["db"]["username"] = "";
$config["db"]["password"] = "";
?>"

我一直在尝试多种方式,但我不知道如何才能以我想要的方式正常工作。有什么建议么?

4

1 回答 1

1

尝试使用 var_export();

    $config["db"]["host"] = $_POST['db_host'];
    $config["db"]["username"] = $_POST['db_user'];
    $config["db"]["password"] = $_POST['db_pass'];

  $content = "<?php ".PHP_EOL." \$config = ".var_export($config,true)."; ".PHP_EOL." ?>";

如果这不起作用,请先检查所有字段是否设置正确!!!

于 2015-10-09T09:54:57.220 回答