Codeigniter配置文件在运行时更改


Codeigniter config file change at runtime

是否可以在运行时编辑配置文件?我正在开发一个模块管理器,它必须能够动态地更改配置的某些方面。

这意味着能够在运行时读取和写入此文件,并修改例如此行。

$config ['WebTitle'] = 'foo';

一些提示?

PD:我不习惯在数据库中创建一个新的表来存储这个配置。替代方案?

编辑:经过一段时间的搜索,我找到了一个与我想要的答案非常相似的答案,但没有成功。

可能吧。Htaccess阻止此操作?

链接到响应:链接

听起来您实际上想要修改配置文件。如果是,是的,你可以这样做。你需要确保该文件可由web服务器写入。然后只需打开()文件,将其转发到内存中,更改所需内容,然后再次转发()。简单!:)

请记住,如果您处于共享托管情况,则存在安全风险。

如果您正在进行设置过程,您可能需要通过调用fileperms()来检查权限。然后,如果权限不正确,请告诉用户他们需要将ftp传输到自己的帐户中,并使文件可写。然后,在安装完成后,告诉用户再次将文件标记为不可写。

根据您的第二条评论,是的,有一种方法可以根据网站更改配置值:您所要做的就是在config.php文件中包含一个带有配置变量的if(或switch)语句。这样,您就可以拥有一个具有相同CI核心的多域站点:

if (($_SERVER['HTTP_HOST']=='localhost') or ($_SERVER['SERVER_ADDR']=='127.0.0.1')) {
   // Config array web site for development
} else if ($_SERVER['HTTP_HOST']=='www.website1.com') {
   // Config array website1
} else if ($_SERVER['HTTP_HOST']=='www.website2.com') {
   // Config array website2       
} ... and so on