使用PHP编辑PHP(管理中心)

时间:2010-06-01 06:39:42

标签: php

正在开发一个管理中心,我可以在其中编辑配置文件(用PHP编写)。我不想将这些值存储在mySQL表中(出于各种原因)。所以说我的config.php有如下内容:

   <?php
     $option1 = 1;
     $option2 = 2;
     $option4 = 5;
     $option7 = array('test','a','b',c');
   ?>

现在在其中一个管理页面中说我只会更改一些值,例如option2或option4等。任何关于什么是最好的方法的想法。

我知道一个选项是完全读取PHP文件并使用REGEX编写部分文件。有什么方法可以让它更有效率?我不希望config.php文件因用户端的某些错误而中断。关于如何确保其有效的任何想法?

3 个答案:

答案 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";
}