正在开发一个管理中心,我可以在其中编辑配置文件(用PHP编写)。我不想将这些值存储在mySQL表中(出于各种原因)。所以说我的config.php有如下内容:
<?php
$option1 = 1;
$option2 = 2;
$option4 = 5;
$option7 = array('test','a','b',c');
?>
现在在其中一个管理页面中说我只会更改一些值,例如option2或option4等。任何关于什么是最好的方法的想法。
我知道一个选项是完全读取PHP文件并使用REGEX编写部分文件。有什么方法可以让它更有效率?我不希望config.php文件因用户端的某些错误而中断。关于如何确保其有效的任何想法?
答案 0 :(得分:2)
如果您对存储配置值的方式有一定的自由,可以使用ini文件。
您所要做的就是将ini文件的内容加载到parse_ini_file的数组中,然后修改该数组中的值,最后使用新值覆盖该文件,如this comment中所述。
出于明显的安全原因,最好将这些文件放在文档根目录之外。
ini文件的示例内容:
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"
示例代码(使用safefilewrite函数):
<?php
$ini_file = '/path/to/file.ini';
$ini_array = parse_ini_file($ini_file);
$ini_array['animal'] = 'CAT';
safefilerewrite($file, implode("\r\n", $ini_array));
?>
答案 1 :(得分:1)
var_export()可能是您正在寻找的功能。
答案 2 :(得分:0)
您可以使用以下代码将设置写入/读取到文件中:
$content = array();
//fill your array with settings;
$fh = fopen ( $bashfile, 'w' ) or die ( "can't open file" );
fwrite ( $fh, $content );
fclose ( $fh );
阅读你使用的: file_get_contents()//这将返回一个字符串值 要么 逐行:
$lines = file('file.txt');
//loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
print "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}