心得分享,類似ASP的global.asa的功能
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
??吹接腥嗽趩?wèn)PHP怎樣可以有像ASP的global.asa的功能,或是怎樣設(shè)定global的變數(shù)。我也找過(guò)一陣子,不過(guò)沒(méi)啥結(jié)論,所以之前都是用include的方式,這其實(shí)也沒(méi)啥不好,只是稍微有點(diǎn)麻煩而已。 剛剛在網(wǎng)上看到php.ini里面有個(gè)變數(shù)可用來(lái)做類似的功能。把php.ini里面的auto_prepend_file改為: auto_prepend_file = "d:\prepend.php" 這樣每個(gè)php都會(huì)自動(dòng)在最開(kāi)頭include這個(gè)文件了。 prepend.php的內(nèi)容: <? $x = "./"; $path_now = realpath($x); $inc_path = array(); do //逐層尋找global.php { if(is_file($path_now."/global.php")) { $inc_path[] = $path_now."/global.php"; } //到網(wǎng)站根目錄就跳出 if(strtolower($DOCUMENT_ROOT)==strtolower($path_now)) break; //跳到上一層 $path_now = realpath($x."../"); } while(1); //反向跑array并include,這樣若是在不同層都找到global.php,而且又同樣的設(shè)定, //則會(huì)取得最近那一層的設(shè)定。 //可以依需求改為以最靠近根目錄的設(shè)定優(yōu)先,之類的。 for($i=sizeof($inc_path); $i>=1; $i--) { include($inc_path[$i-1]); } ?> 這樣,以后只要在目錄里面放一個(gè)global.php,把一些設(shè)定寫(xiě)在里面,那這個(gè)目錄以及其子目錄的每個(gè)php都可以讀取這些設(shè)定了。這種做法我目前想到的最大缺點(diǎn)是,如果用的是虛擬主機(jī),就不能這樣搞了。
另外php.ini里面還有個(gè)auto_append_file,是設(shè)定自動(dòng)在結(jié)尾include某個(gè)文件。 該文章在 2012/6/7 9:04:53 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |