0

我将以下代码写入设置文件。

 $data=json_decode($_REQUEST["data"],true);
 $dbhost=$data["dbhost"];
 $dbuser=$data["dbuser"];
 $dbpass=$data["dbpass"];
 $dbname=$data["dbname"];
 $config="<?php @define('DB_HOST', '$dbhost');
 @define('DB_USER_ID', '$dbuser');
 @define('DB_USER_PASS', '$dbpass');
 @define('DB_NAME', '$dbname'); ?>";

 $fp = fopen("../settings/settings.php", "w");
 fwrite($fp, $config);
 fclose($fp);

settings.php 看起来像这样

 @define('DB_HOST', '');
 @define('DB_USER_ID', '');
 @define('DB_USER_PASS', '');
 @define('DB_NAME', '');

我想用一种更简单的方法来替换它来写入空值,因为当前代码会写入整个文件,它不会更新值。我知道我可以使用唯一标识符,但可以改写空值吗?

更新 :

我在该 settings.php 文件中也有一些基于 true 或 false 的设置,这就是我在写入值时遇到的问题。

 define('LOGO_IMAGE_PATH', '%logo_image%');
 define('USE_LOGO_IMAGE', true);
 define('SITE_TITLE', '%site_title%');
 define('TRACK_IP', false);
 define('MOBILE_VERSION_ENABLED', false);

只有当我使用与上面相同的方法编写文件时,我才能获得更新真值或假值的函数

感谢您的帮助。

4

1 回答 1

0

您可以将 JSON 字符串保存到文件中,然后读取文件以将其解析出来。这比让用户将任意 PHP 写入您的服务器要安全得多。

于 2013-01-16T04:35:14.217 回答