心得分享,类似ASP的global.asa的功能
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
常看到有人在问PHP怎样可以有像ASP的global.asa的功能,或是怎样设定global的变数。我也找过一阵子,不过没啥结论,所以之前都是用include的方式,这其实也没啥不好,只是稍微有点麻烦而已。 刚刚在网上看到php.ini里面有个变数可用来做类似的功能。把php.ini里面的auto_prepend_file改为: auto_prepend_file = "d:\prepend.php" 这样每个php都会自动在最开头include这个文件了。 prepend.php的内容: <? $x = "./"; $path_now = realpath($x); $inc_path = array(); do //逐层寻找global.php { if(is_file($path_now."/global.php")) { $inc_path[] = $path_now."/global.php"; } //到网站根目录就跳出 if(strtolower($DOCUMENT_ROOT)==strtolower($path_now)) break; //跳到上一层 $path_now = realpath($x."../"); } while(1); //反向跑array并include,这样若是在不同层都找到global.php,而且又同样的设定, //则会取得最近那一层的设定。 //可以依需求改为以最靠近根目录的设定优先,之类的。 for($i=sizeof($inc_path); $i>=1; $i--) { include($inc_path[$i-1]); } ?> 这样,以后只要在目录里面放一个global.php,把一些设定写在里面,那这个目录以及其子目录的每个php都可以读取这些设定了。这种做法我目前想到的最大缺点是,如果用的是虚拟主机,就不能这样搞了。
另外php.ini里面还有个auto_append_file,是设定自动在结尾include某个文件。 该文章在 2012/6/7 9:04:53 编辑过 |
关键字查询
相关文章
正在查询... |