很多情況需要後台操作前端的資料,例如管理員在後台設定引數,前台顯示的引數會同步修改。
這裡運用以下幾個函式及變數。
$_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 方法內部,每執行一次方法從配置檔案裡取,都是一樣 服務在執行的時候,修改配置檔案無法生效,必須要重啟服務。有時間看一下香港平台,修改 終端公升級包路徑 配...