亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

PHP中路徑問題的解決方法

添加時間:2014-7-31 17:35:12  添加: 思海網絡 

  關于PERL與PHP中的包含路徑一直是一個比較難解的問題,主要是與操作系統和WEB服務器有關,不可能非常智能化的解決這個路徑問題。相對 于PERL,PHP的路徑好得多,解決起來也容易得多,因為PHP的相對路徑在PHP程序中的任何場合都可以使用,而不象PERL在某些語句中必須用絕對 路徑而導致移植的極其復雜。

  基于此,在PHP中,我設計了一個絕對穩妥的解決方案,如下所述。

  原則:

  使用相對路徑,但在相對路徑中用絕對路徑(有點繞,待會兒詳解),一是可以保證可移植性,二是可以方便地修改,三是公式化且結構清晰明了,易于擴展。

  步驟詳解:

  1、先確定好一個程序的根目錄,注意是文件系統下的,不是WEB服務器下的虛擬目錄,不過一般情況下該目錄下的子目錄的相對路徑與URL下該目錄的虛擬子目錄是相同的。

   2、在定義好的程序根目錄下的每個子目錄下(其實不一定是每個,根據需要)建立一個settings.php,里面定義一個變量或是常數(常數比較好, 因為作用域比較大),如APPROOT,但這個APPROOT卻不是絕對路徑,而是該目錄相對于你指定的程序根目錄的相對路徑。

  3、在 此目錄下的所有程序入口文件(也即第一個包含其它文件的文件,或是允許直接在瀏覽器中瀏覽的文件)中第一句寫上 require_once('settings.php');,但要注意,所有被包含文件最好不要加此句——其實加上也可以,因為你可以在 settings.php中寫上 if(!defined(APPROOT)) define(APPROOT, '../..');這類的語句以防重定義。

  4、如果你要包含其它文件,無論是直接還是間接地包含,都可以寫成 include(APPROOT.$path);,這里$path為被包含文件相對于你所指定的程序根目錄的絕對路徑。

  原理:

   定下的程序根目錄是相對路徑,但具體的目錄位置是相對于那個根目錄的絕對路徑,兩者組合起來就是具體文件相對于程序根目錄的相對路徑了。例如目錄 c:\wwwroot\app為你指定的程序根目錄,然后有這么兩個文件c:\wwwroot\app\a\index.php和c:\wwwroot \app\b\inc.php。對子目錄a來說,APPROOT是'..',而對程序根目錄來說,inc.php的絕對路徑是$path='/b /inc.php',兩者組合為'../b/inc.php'。如果要在index.php中包含inc.php就要寫成include('../b /inc.php');,而這個路徑不就正好是剛才組合而成的APPROOT.$path嗎?


  結論:

   經過以上處理,各個路徑絕對整齊劃一,唯一羅嗦一點的就是每個目錄下要定義一下這個APPROOT,但每個目錄下只需在本目錄的 settings.php中定義一次就足夠了。如果你整個程序只有一個入口文件,如index.php,而其它文件全部都是直接或是間接地被包含進這個唯 一的入口文件的話,就只需在index.php的所在目錄下的settings.php中定義一次就OK了。如果有朋友做過Delphi的工程并對工程文 件研究過的話,就會發現我剛才說的一個程序只有一個主入口文件的情況與Delphi的工程十分相似,因為Delphi除了一個主程序文件(dpr文件), 其余的全部是單元文件或是資源文件,都不能獨立執行。在PHP中,如果這種情況出現,只需定義一次APPROOT,并在主程序文件中第一句話寫成 require_once('settings.php');,而以后所有的包含全都可以用include(APPROOT.$path);,就保證不會 有任何問題,除非你不會寫這個“包含文件相對于程序根目錄的絕對路徑”$path。

關鍵字:PHP、服務器、程序、虛擬目
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站