PHP小函数让项目可配,更安全:parse_ini_file
php页面怎么写,可以不把mysql用户名和密码透露给别的开发者?
项目的配置参数都写到PHP里好像很不专业肿么办?!
配置文件是个好东西!
今天写配置文件和一个相关。
这个内容是受昨天一些读者的启迪,因为有不少人认为extract会打乱项目变量,对很多人来说是的,但我先不深聊。今天看完parse_ini_file的用法,也算一小部分展开了extract的进一步使用思路。
有了配置文件我们就不用在项目中定义无数的常量或者全局变量了。
我们打开某些软件可以看到一些后缀名为ini的文件,比如config.ini。很多项目和框架也是有的,这是用来干嘛的?
是因为在项目中我们有些数值要调整,或要有调整的空间,我们写在项目里不如写在项目外边某个文件中统一管理。
怎么用呢?
ini文件就是一个文本,用键值的方式写,不需要引号:
创建文件:con.ini
username=root
password=521123
代码一行导入数组:
$config=parse_ini_file('con.ini');
//这样你就获得了有两个元素的数组, $config['username'],以及$config['password']
这除了方便,为什么安全?
因为这可以让你的php文件和生产服务器上的用户密码分开保存,而服务器上的ini文件你把访问权限设置一下即可。注意可以不用存成ini,而是其他更安全的后缀,比如.htaccess后缀是默认肯定不能下载的,所以保存成con.htaccess
配置文件我想写得复杂些啊
可以,比如我在ini文件分两类值,一个魔法(magic)和一个基础(base):
[magic]
fire=99
ice=15
[base]
hp=99
mp=105
这样如果导入你只能获得一个四个值的数组
如何在数组里区别是magic还是base的值?
$config=parse_ini_file('con.ini',true); //注意第二参数true
于是你获得了一个二维数组
$config['magic']['fire']的值是99
那么用前extract一下,连上上篇文章了。
建议用时再extract,比如mysql连接的单例里,你再extract刚才的$config:
global $config;
extract($config);
这样不用顾虑命名的覆盖。
写代码如写文章,各有风格,详细慢慢再聊。
加我的新Q群,和我慢慢探讨:129120971
多点赞转载我就写更多干货,谢谢鼓励!