2010-06-01 56 views
2

我正在開發一個管理中心,可以在其中編輯配置文件(用PHP編寫)。我不想將這些值存儲在mySQL表中(出於各種原因)。所以說,我的config.php文件具有類似內容:使用PHP編輯PHP(管理中心)

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

現在在管理頁面中的一個說,我將只改變像選項2或3選項等幾個值在什麼將是最好的方式去任何想法對這個。

我知道一個選擇是完全讀取PHP文件並使用REGEX編寫它的一部分。任何方式使這更有效率?我不想讓config.php文件因爲用戶端的錯誤而中斷。任何想法如何確保它的工作?

+1

我建議使用數組作爲配置,而不是使用serialize/unserialize保存/加載它,這樣你就不需要做任何解析,也不需要使用數據庫。 – Turnor 2010-06-01 06:42:52

回答

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)); 
?> 
+0

+1對於基本的配置數據,INI文件或XML文件(或JSON編碼數據)確實應該足夠了。儘管如果您認爲解析INI/XML/JSON的開銷太大,您也可以創建一個包含配置數據的動態PHP文件(它總是被覆蓋)。很多選項都可以工作: – wimvds 2010-06-01 07:38:22

1

var_export(可能是你正在尋找的功能。

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