可以在运行时编辑配置文件吗?我正在开发一个模块管理器,它必须能够动态地更改配置的某些方面。
这意味着能够在运行时读取和写入此文件,并修改例如此行。
$config ['WebTitle'] = 'foo';
一些技巧?
PD:我不会在数据库中创建一个新表来存储这个配置。备择方案?
编辑:搜索了一段时间后,我找到了一个与我正在寻找的答案非常相似的答案,但没有成功。
它可能。Htaccess 阻止这个?
回复链接:链接
可以在运行时编辑配置文件吗?我正在开发一个模块管理器,它必须能够动态地更改配置的某些方面。
这意味着能够在运行时读取和写入此文件,并修改例如此行。
$config ['WebTitle'] = 'foo';
一些技巧?
PD:我不会在数据库中创建一个新表来存储这个配置。备择方案?
编辑:搜索了一段时间后,我找到了一个与我正在寻找的答案非常相似的答案,但没有成功。
它可能。Htaccess 阻止这个?
回复链接:链接
根据您的第二条评论,是的,有一种方法可以根据网站更改配置值:您所要做的就是在 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
听起来您想实际修改配置文件。如果是这样,是的,你可以做到。您需要确保该文件可被 Web 服务器写入。然后只需 fopen() 文件, fread() 将其放入内存,更改所需内容,然后 fwrite() 将其再次退出。简单的!:)
请记住,如果您处于共享托管情况,则存在安全风险。
如果您正在执行设置过程,您可能希望通过调用 fileperms() 来检查权限。然后,如果权限不正确,告诉用户他们需要 ftp 进入他们的帐户并使文件可写。然后,在设置完成后,告诉用户再次将文件标记为不可写。