大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样: ?php?? $config['a']=1;?? $config['b']=2;?? 这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种 ?php?? return?array(?? 'a'=1,'b'=2?
大多数人会将一个单独的php文件当成配置文件,早些年的配置文件大多类似这样:
<?php??
$config['a']=1;??
$config['b']=2;??
这样include后。可以使用$config变量了,但慢慢的,却越来越发现这样不太好,于是就有了这种
<?php??
return?array(??
'a'=>1,'b'=>2??
);??
这时候只要写$config = include('config.php'),就相当于和上面一样了。然后老王讲的就是指第二种情况。
原文在:http://huoding.com/2014/02/25/329
他举的例子是:
<?php??
??
$debug?=?false;??
//?...??
$config?=?include?'config.php';??
//?...??
if?($debug)?{??
????phpinfo();??
}??
如果config.php里万一写了$debug=true;那么就会造成phpinfo()被输出了,与实际预料就有了偏差了。那么怎么安全的include呢?
老王说:
$config?=?call_user_func(function()?{??
????return?include?'config.php';??
});??
这样就利用局部变量把里面的一些可能污染外部的变量控制在匿名函数的作用域里。
欢迎使用阳光订餐系统,本系统使用PHP5+MYSQL开发而成,距离上一个版本1.2.8发布已经有一年了。本系统集成了留言本,财务管理,菜单管理,员工管理,安全管理,WAP手机端等功能,并继续继承1.X老版本简单、实用、美观的特点,在老版本上的基础上做了如下更新:1.更简洁的前台与后台,菜单及功能布局更合理。2.更合理的文件结构,合理适度的模板机制以及OO运用,更易于理解的代码,更适于二次开发;3.
2
然后我自己也测试了一下,确实。即使用$GLOBALS,也没有影响,而单独的php文件,如果你不是function ,也不能直接global $debug;这样是语法错误的。
所以。。。。如果为了安全,你还是和老王学一下吧。。。
原文地址:[转]老王:如何安全的include文件, 感谢原作者分享。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号