我有一个PHP配置文件,其中存储了以下设置:
define("SETTING_1", "");
define("SETTING_2", "");
define("SETTING_3", "");
默认情况下,设置为空,但我有一个安装程序文件install.php
,它基本上会提示用户进行设置。打开设置文件、找到每个设置的定义并插入值的最佳方式是什么?最后,需要将设置文件保存到磁盘。
我想使用正则表达式或简单的字符串搜索进行ovoid。我遇到了token_get_all()
,使用它有意义吗?
token_get_all()
不会真正帮助您,因为它只会为您提供字符串中的所有解析令牌。与使用列出的其他方法相比,您将花费更多的时间为token_get_all()
的结果编写状态机或解析器。
实现这一点的最简单方法是使用某种已知的、唯一的占位符,比如:
define("SETTING_1", "{{SETTING_1}}");
define("SETTING_2", "{{SETTING_2}}");
define("SETTING_3", "{{SETTING_3}}");
然后,打开文件,并使用str_replace()
:将所有占位符替换为它们的实际值
$file = file_get_contents( "config.php");
$config = str_replace(
array( '{{SETTING_1}}', '{{SETTING_2}}', '{{SETTING_3}}'),
array( $setting1, $setting2, $setting3),
$file
);
file_put_contents( 'config.php', $config);
这就是一切。
define()方法是否确定?
如果您真的需要使用PHP格式,请使用var_export()和include,这在另一方面是完全不安全的。。。或者使用INI文件,即创建INI文件,在PHP 中写入值
不要在用户设置中使用常量。这是个坏主意。创建一个数组,并使用var_export将其存储在第二个参数为"true"的文件中。它是可读的,可以通过使用数组函数重新生成。