2013-01-16 51 views
0

我有follwing代碼寫入設置文件。簡單的方法爲PHP函數寫入設置文件

$data=json_decode($_REQUEST["data"],true); 
$dbhost=$data["dbhost"]; 
$dbuser=$data["dbuser"]; 
$dbpass=$data["dbpass"]; 
$dbname=$data["dbname"]; 
$config="<?php @define('DB_HOST', '$dbhost'); 
@define('DB_USER_ID', '$dbuser'); 
@define('DB_USER_PASS', '$dbpass'); 
@define('DB_NAME', '$dbname'); ?>"; 

$fp = fopen("../settings/settings.php", "w"); 
fwrite($fp, $config); 
fclose($fp); 

的settings.php這個看起來像這樣

@define('DB_HOST', ''); 
@define('DB_USER_ID', ''); 
@define('DB_USER_PASS', ''); 
@define('DB_NAME', ''); 

我想與寫的空值更簡單的方法來取代它,因爲當前的代碼將整個文件,它不更新值。我知道我可以使用唯一的標識符,但它可以寫入空值而不是?

UPDATE:

我也有在settings.php配置文件基於真或假的一些設置,這是我卡住寫的值。

define('LOGO_IMAGE_PATH', '%logo_image%'); 
define('USE_LOGO_IMAGE', true); 
define('SITE_TITLE', '%site_title%'); 
define('TRACK_IP', false); 
define('MOBILE_VERSION_ENABLED', false); 

我不可能得到函數來更新true或false值只有當我寫的文件,像上面

謝謝你的幫助的方法相同。

+2

爲什麼不是JSON而不是試圖寫出可執行代碼?另外,請確保您正在驗證您的輸入!你在做什麼是非常危險的。 – Brad

+1

PEAR Config或libconfigedit將是替代品。 – mario

+0

以及...即時通訊仍然學習PHP – dexter4000

回答

0

您可以將您的JSON字符串保存到文件中,然後讀取該文件以解析出它。與讓用戶將任意PHP寫入服務器相比,這是一個更安全的選擇。

+0

即時通訊仍然學習PHP。 ..也許我可以讓某人爲我重寫這些功能換取一些現金;) – dexter4000

+0

@ dexter4000這不是招聘開發者的網站。但是,您可以訪問http://careers.stackoverflow.com並在那裏找到開發人員。 –

+0

我知道。不管怎麼說,還是要謝謝你 – dexter4000

相關問題