Codeigniter配置文件在运行时更改

时间:2013-08-07 15:21:30

标签: php codeigniter

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

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

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

一些提示?

PD:我不会在数据库中创建一个新表来存储此配置。替代?

编辑:经过一段时间的搜索,我发现答案与我正在寻找的答案非常相似,但没有成功。

可能。 Htaccess会阻止这个吗?

链接到回复link

2 个答案:

答案 0 :(得分:0)

根据您的第二条评论,是的,有一种方法可以根据网站更改配置值:您只需要在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

答案 1 :(得分:0)

听起来你想要实际修改配置文件。如果是的话,是的,你可以做到。您需要确保Web服务器可以写入该文件。然后只是fopen()文件,fread()它进入内存,改变需要的东西,然后fwrite()再次退出。简单! :)

请注意,如果您处于共享托管状态,则存在安全风险。

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