国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
版主

PHP中include路徑的解決方法匯總

machangmu
2012年8月6日 9:23 本文熱度 3984

這幾天整理一份很亂的代碼,這才意識到php對include處理不是一般的賤:別的編程語言在處理include中的相對目錄時,都是以當前處理的文件作為基準。也就是說,如果A包含B,B包含C時,C再包含一個含相對路徑的文件,那么路徑是相對于C的。這樣的處理很自然,符合人們的直覺,也便于開發(fā)出路徑無關(guān)的程序包。

可是PHP不這樣,它優(yōu)先相對工作目錄來處理,并且如果路徑中包含. ..的話,則只相對于工作目錄。
也許PHP這樣處理有它的理由,有誰知道的不妨告訴我。

下面是解決這一問題的幾種方式:

  • __FILE__

__FILE__ always equals to the real path of a php script regardless whether it's included.

__FILE__ helps you specify the file to include using relative path to the including file.
這種方法首選推薦。雖然你的include語句會因此要寫得長一些,但是一個字,值!

<?php 

include dirname(__FILE__).'/subdir';

//dirname return value does not contain the trailing slash

?>

  • $_SERVER['DOCUMENT_ROOT']

This method allows you to specify a path relative to the web server doc_root for file inclusion.
這也是許多項目在采用的一種不錯的方式,就我看來,缺點是,整個項目不方便移動。

例如你一開始放置在xxx.com/,后來需要放到xxx.com/abc/下的話,你要改文件(在一個公有文件中計算ROOT的位置,其他文件包含這個共有文件)。
特別是當你同一份代碼放多處時(例如一個測試環(huán)境和一個正式環(huán)境),你改文件也不好改。

<?php

if (!defined("WETSITE_BASE_DIR"))

define("WETSITE_BASE_DIR", $_SERVER['DOCUMENT_ROOT'].'/Clare/');

require_once(WETSITE_BASE_DIR.'includes/global.inc.php');

?>

  • chdir()

The include looks for file relative to current working directory. We can use this feature. It's really a "fancy" way, but I'm not sure whether it's safe all the time. Who knows?
這種方式感覺稍嫌麻煩了點,隨時要記得恢復工作目錄也不是容易的事。寫完這句話后,我隨后寫了幾個測試文件,發(fā)現(xiàn)這種方式的最重要缺點不在麻煩,而在它的副作用:改變了工作目錄,這會導致程序邏輯出錯。

rainfalling at yahoo dot com (21-Sep-2005 01:06)

This is yet another way to include files relative to the current file. I find it easier if you have a lot of includes.

<?php

$prewd = getcwd(); // get the current working directory

chdir(realpath(dirname(__FILE__))); // change working directory to the location of this file

include('includedfile.php'); // include relative to this file

chdir($prewd); // change back to previous working dir

?>

  • set_include_path()

This way is the most convenient way but it's not without flaws. First, not in all cases you have permission to change server configuration. Second, if there are many path specified in include_path, the actually included file may not be the one you expected because there may be files of the same name under different directories.
這是最方便的方式,但不是沒有缺點。首先,有時候你不見得有權(quán)限修改配置。其次,當不同路徑下的文件名有重復的時候,你會被搞糊涂的(就算你不會,你的維護者呢)。

  • auto_prepend_file and auto_append_file in php.ini

This almost the best way if your scripts commonly need a startup script. We can do a lot of useful things in the startup script, for examples, define constants, load configurations. But it's not always OK to change the php.ini settings. Remember the most adaptive application should be as independent from configs as possible.
如果你每個腳本都需要包含一個通用腳本的話,這幾乎是最好的方式,但是,缺點還是,與配置相關(guān),不夠獨立。


該文章在 2012/8/6 9:29:26 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 欧美日韩国产动漫美女一区 | 丰满爆乳无码一区二区三区 | 国产综合久久三级蜜臀导航 | 精品国产粉嫩内射白浆内射双马尾 | 久久精品噜噜噜成人 | 国产精品美女久久久浪潮av | 无码一区二区三区在线精品无码 | 亚洲精品第四页中文字幕 | 好湿好紧快点再深一点动图 | 国产乱子乱人伦电影在线观看 | 无码成人啦啦啦在线高清免费观看6蜜桃传媒在线观看高 | 久久人妻内射无码一区三区 | 国产精品久久久久久99人妻绯闻 | 无人区乱码一二三四 | 人妻一区二区三区免看 | 国产人A片在线乱码视频 | 国产免费av片在线观看 | 亚洲自拍主播无码视频 | 国产麻豆91欧美一区二区 | 国内大量揄拍人妻精品視頻 | 午夜成年人网站 | 伊人久久大香线焦av一区二区 | 国产成a人亚洲精品无码久久网 | 91精品欧美产品免费观看 | 在线日韩欧美国产一区 | 日本三级欧美三级人妇视频 | 国产无遮挡裸体免费视频 | 成人国产精品秘果冻传媒在线 | 色哟哟精品网站在线观看 | 国产aⅴ精品一区二区三区 国产aⅴ精品一区 | 亚洲国产熟妇无码一区二区69 | 国产精品免费看久久久无码 | 亚洲av天天做在线观看 | 日韩av高清无码一区二区三区 | 亚洲天堂久久亚洲 | 五月天婷婷亚洲熟女一区 | 中文无码乱人伦中文视频播放 | 欧美亚洲国产日韩综AⅤ | 亚洲精品乱码久久久久久日本蜜臀 | 熟妇av福利成全视频在线观看免费观看 | 最新免费视频高清老师中文无码一区二区三区在线观看 |