更新存储在文件中的 PHP 变量


updating php variables stored in file

我想开始使用配置.php文件,如joomla或wp也使用来存储一些几乎静态的变量,如数据库登录,主题ID或所选语言。问题是,我不知道如何处理更新此值。是否有可能如何单独编辑此变量,或者我必须始终替换文件的全部内容?比方说,我有 config.php 文件,内容如下:

class DB {
    public $theme = 1;
    public $db_host = 'abc';
    public $db_user = 'adsabc';
    public $db_pwd = 'dsads';
    public $db_charset = 'utf8';
    public $lang = 'gb';
    public $debug= 0;
    public $gzip = 0;
    }

我想更改变量 $lang = 'gb'; 到 $lang = 'de';使用 php 执行此操作的最有效方法是什么?

您可以编写一个 PHP 脚本来查找和替换这些值,但使用正则表达式或类似方法解析代码将是一个坏主意。

相反,您最好实现一个JSON文件或类似的东西,您可以将值存储在其中,例如:

{
    "lang": "gb",
    // everything else
}

然后修改配置文件以将该文件解析为变量:

private function parseConfig()
{
    $json = json_decode(file_get_contents('yourconfig.json'));
    $this->lang = $json->lang;
    $this->anotherVar = $json->anotherVar;
}
这样,在

包含的文件中读取和写入变量数据比修改PHP文件更易于管理(引入十种可以破坏配置文件的方法,这是您网站的支柱!

你可能在 var_export() 方面取得了一些成功。 您可能需要 eval() 它来读取它(确保在函数作用域内执行此操作),然后file_put_contents() var_export的输出。 然后它可以手动编辑。 不过,它看起来可能会也可能不会完全符合您的要求。