最近剛在學PHP,在做一個小項目,用到了很多require和include,被絕對路徑、相對路徑弄的焦頭爛額,最後終於搞明白了。
1、php的相對路徑是以運行的腳本為準,例如A包含B,B包含C,如果A、C在同一級目錄,則B裡包含C的路徑應該是相對於A的,如果B 、C在同一級目錄,則B裡包含C的路徑是相對於C的。
2、不管.php腳本怎麼被包含,dirname(__FILE__)得到的都是腳本所在資料夾的絕對路徑。
這兩條規則很難準確的運用,至少我自己就經常被搞暈,所以我用了一個比較取巧的辦法,自己寫了一個path.php,這樣一來就很少出錯了。
<?php define('ROOT_PATH',dirname(__FILE__)); define('ACTION_PATH',ROOT_PATH.'/action/'); define('BEAN_PATH',ROOT_PATH.'/bean/'); define('DAO_PATH',ROOT_PATH.'/dao/'); define('IPADVIEW_PATH',ROOT_PATH.'/ipadView/'); define('VIEW_PATH',ROOT_PATH.'/view/'); ?>