我想开始使用configuration.php文件,比如joomla或wp也用来存储一些几乎静态的变量,如db logins,theme id或selected language。问题是,我不知道如何处理更新此值。是否有可能单独编辑这些变量,或者我必须始终替换文件的整个内容?可以说,我有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&#39 ;;到$ lang =' de&#39 ;;使用php执行此操作的最有效方法是什么?
答案 0 :(得分:2)
var_export()可能会取得一些成功。您可能需要eval()来读取它(确保在函数范围内执行此操作),然后将file_put_contents()输出为var_export。然后手动编辑。但是,它可能会或可能不会完全符合您的要求。
答案 1 :(得分:2)
您可以编写一个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文件更易于管理(引入十倍的方式可以破坏配置文件,这是您网站的支柱!)。