iT邦幫忙

0

include 檔案時,路徑問題

我有一個header.php 和 index.php檔案放在根目錄,header.php裡面有首頁連結
有一個資料夾test裡面的test.php需要include "../header.php"
雖然成功引入,但是test.php的相對路徑是找不到index.php
想請問有沒有比較好的規劃方式

目前想到的方式是
將header.php複製一個放到test內,並把它改成首頁

ccutmis iT邦高手 2 級 ‧ 2019-12-11 11:15:53 檢舉
/ 根目錄
./ 當前目錄
../上一層
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
小魚
iT邦大師 1 級 ‧ 2019-12-11 09:27:50
看更多先前的回應...收起先前的回應...

這樣換環境不就有點麻煩@Q@

小魚 iT邦大師 1 級 ‧ 2019-12-11 09:32:58 檢舉

你是不是誤解了什麼,
就像在網頁中 "/" 就是網頁根目錄的絕對路徑,
跟環境有關係嗎?
(如果是架在其他站底下的還真的有關係 XD)

ckp6250 iT邦好手 1 級 ‧ 2019-12-11 10:23:41 檢舉

我都用最笨的方法
include( $_SERVER['DOCUMENT_ROOT'].'/xxxx/xxxx/yyy.php');

fillano iT邦超人 1 級 ‧ 2019-12-11 10:38:15 檢舉
0

我習慣會先在config或是在其web 的root path任何一個會載入的地方。
先設好如下的路徑

define('WEBROOTPATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);

之後再引入就可以

include(WEBROOTPATH.'dir1/test.php');

但如 ckp6250 用的方式,採用SERVER['DOCUMENT_ROOT']也是一招
雖然有其危險性就是了。

對了,多年前曾經看過一招超搞笑的招。
但也的確可以用

$webpath='demo1';
define('ROOTPATH', '../../../../../../../../../'.$webpath);

include(ROOTPATH.'dir1/test.php');

算很搞笑的招。雖然可以用,但不建議用。
而且,都要設定參數了。為何不直接設定就好。
搞不懂當初這樣寫的人的想法。

0
舜~
iT邦高手 1 級 ‧ 2019-12-11 14:24:03

分享兩個我用過的方式

// 從網站跟目錄去找要include的檔案
include $_SERVER['DOCUMENT_ROOT'].'/header.php';

// 從當前php檔案所在的目錄去找要include的檔案
include dirname(__FILE__).'/../header.php';

我要發表回答

立即登入回答