利用配置文件實現后台和前端的參數統一修改。


很多情況需要后台操作前端的數據,例如管理員在后台設置參數,前台顯示的參數會同步修改。

這里運用以下幾個函數及變量。

$_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 可以是數組(但不能是多維數組)。

mode參數,可選。規定如何打開/寫入文件。可能的值:FILE_USE_INCLUDE_PATH    ,  FILE_APPEND   ,LOCK_EX

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

利用這樣修改配置文件參數,能很好的設置前后台的同步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM