利用配置文件实现后台和前端的参数统一修改。
很多情况需要后台操作前端的数据,例如管理员在后台设置参数,前台显示的参数会同步修改。
这里运用以下几个函数及变量。
$_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
利用这样修改配置文件参数,能很好的设置前后台的同步。