利用配置檔案實現後台和前端的引數統一修改。

2022-08-23 07:30:14 字數 2012 閱讀 4066

很多情況需要後台操作前端的資料,例如管理員在後台設定引數,前台顯示的引數會同步修改。

這裡運用以下幾個函式及變數。

$_server['document_root']

file_put_contents

strip_whitespace

var_export

$_server['document_root']是php預定義的幾個變數之一。作用是:獲取當前執行指令碼所在的文件根目錄。該根目錄是由伺服器配置檔案中定義。例如apache配置檔案httpd.conf中documentroot配置項的值。

通過這個變數獲取相應目錄下配置檔案

if

(is_post) {

$filename1 = $_server['document_root'] . '/admin/common/conf/config.php'; //這個是後台配置檔案

$filename2 = $_server['document_root'] . '/user/common/conf/config.php'; //前台配置檔案

file_put_contents($filename1, strip_whitespace("<?php\treturn " . var_export($_post, true) . ";?>")); //將post傳過來的資料寫入後台配置檔案中

file_put_contents($filename2, strip_whitespace("<?php\treturn " . var_export($_post, true) . ";?>")); //將post傳過來的資料寫入前台配置檔案中

file_put_contents() 函式把乙個字串寫入檔案中。

與依次呼叫 fopen(),fwrite() 以及 fclose() 功能一樣。

語法 file_put_contents(file,data,mode,context)    

file引數,必需。規定要寫入資料的檔案。如果檔案不存在,則建立乙個新檔案。

data引數,可選。規定要寫入檔案的資料。可以是字串、陣列或資料流。   data 可以是陣列(但不能是多維陣列)。

context引數,可選。規定檔案控制代碼的環境。context 是一套可以修改流的行為的選項。若使用 null,則忽略。

該函式將返回寫入到檔案內資料的位元組數。

strip_whitespace() 函式返回已刪除 php 注釋以及空白字元的源**檔案。該函式對於檢測指令碼中的實際**量很有用。

語法 strip_whitespace(filename)

filename引數,必須,規定檔名。

var_export()  輸出或返回乙個變數的字串表示。跟var_dump類似,不同的是它返回的是乙個合法的**。

語法 var_export ($expression$return

expression 引數,必須。

在上面這個例子裡,我們先用var_export()函式將傳入的post值列印出來,然後再用strip_whitespace()函式將不需要的**清除,獲得需要寫入的字串,陣列,資料流。

最後利用file_put_contents()把獲得資料寫入檔案中。

//

例如傳入的post資料為

a=1,b=2,c=3

//寫入後在配置檔案中

<?php return

array('a'=>'1','b'=>'2','c'=>3); ?>

在控制器中呼叫配置檔案裡的資料,例如用thinkphp框架中的c函式呼叫資料

$a=c('a');

$b=c('b');

$c=c('c');

echo$a;

echo$b;

echo

$c;

輸出結果為

123

利用這樣修改配置檔案引數,能很好的設定前後臺的同步。

讀配置檔案的實現

define sas3 configfile mnt heidun config sas3 database.conf getstrkeyvalue mysqlusername,lusername remotemysql sas3 configfile 讀配置檔案 getstrkeyvalue my...

漫遊配置檔案的實現!

在企業裡,可是這樣會有個問題 當使用者在不同電腦登陸時,這些電腦的本地磁碟中都會出現乙份使用者配置檔案 profile 並且是互不相干的。所有使用者在某台電腦桌面上放的東西在另外一台可能就不會有,這樣就很不方便。我們可以想乙個辦法解決上述問題 集中把這些使用者的配置檔案 profiles 放在乙個共...

執行的後台服務修改配置檔案

gps平台 建設 軟體開發 系統運維,找森大網路科技!來自森大科技官方部落格 結論 無論是作為全域性變數,還是在addcccnmsgquemsg 方法內部,每執行一次方法從配置檔案裡取,都是一樣 服務在執行的時候,修改配置檔案無法生效,必須要重啟服務。有時間看一下香港平台,修改 終端公升級包路徑 配...