码迷,mamicode.com
首页 > 其他好文 > 详细

利用配置文件实现后台和前端的参数统一修改。

时间:2016-07-12 21:28:15      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

很多情况需要后台操作前端的数据,例如管理员在后台设置参数,前台显示的参数会同步修改。

这里运用以下几个函数及变量。

$_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

利用这样修改配置文件参数,能很好的设置前后台的同步。

利用配置文件实现后台和前端的参数统一修改。

标签:

原文地址:http://www.cnblogs.com/suiyuewuxin/p/5664746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!