2013-05-30 70 views
1

我想將PHP文件包含在另一個目錄中。包含PHP文件的JS,Css

這裏是我的文件結構

settings\ 
    manage.php 

website \ 
    index.php 
    main.js 
    main.css 

對於manage.php

echo 'Welcome to the manager! Here is your website:'; 
include('../website/index.php'); 

的index.php

<script src='main.js'></script> 
<link rel="stylesheet" type="text/css" href="main.css"> 

所以,當我加載manage.php,我不明白main.js或main.css。我怎樣才能使這個工作?也許包括是不是正確的路要走?我無法修改網站文件夾中的任何內容。

[我知道iFraming是一個可能的解決方案,但我希望能得到另一個答案]

+0

它通常最好使用絕對路徑VS相對網址。 – Class

+0

網站文件夾的內容,從用戶,我不知道會是在那裏 –

+2

我覺得框架是最好的解決方案,你似乎是包括在'manage.php一個完整的網頁/網站'文件。這可能會導致無效的html(多個'html','body'標籤等等)和覆蓋你的用戶風格(或其他方式),無論如何,這將會弄亂你的設計,即使你設法包含正確的資產。 – jeroen

回答

1

基於這個問題下面的評論:如果你要包括你的用戶的一些功能/代碼(而不是另一種方式;你在代碼中包括用戶的東西),你應該看看auto_prepend_file指令。

基本上,您可以在您的php.ini文件中指定要在主文件之前預先添加某個php文件(如require)。

編輯:當你沒有訪問爲php.ini,但你可以使用一個.htaccess文件,你可以把這個在您的.htaccess

php_value auto_prepend_file "/path/to/your/file.php" 
+0

感謝您的回覆但我沒有權限訪問php.ini –

+0

@AA你也可以在'.htaccess'文件中設置這些值,請參閱我的編輯 – jeroen

+1

謝謝,我浪費時間試圖做出自己的方法,哈哈哈。謝謝,我得到它的工作。 –

2

這裏的問題是,當瀏覽器加載/settings/manage.php它將使請求/settings/main.js/settings/main.css不存在

你可能需要在index.php來改變你的HTML是這樣的:

<script src="/website/main.js"></script> 
<link rel="stylesheet" type="text/css" href="/website/main.css"> 

注意我做了關於根據您的目錄佈局,可以將您的網址一些假設需要調整我的解決方案,使之成爲你

+3

他無法訪問'網站/'目錄 – Davit

+0

好點!讀取失敗:( – joshuahealy

3

工作,因爲你不能編輯/website/內容,你應該可以嘗試啓動這個醜陋的代碼。按照您的manage.php

echo('<base href="../website/">'); 

它是否適合你,那你能想到的,包括一個HTML文件之前發送到PHP的正確頭的之前include聲明

添加,而不是直接回送基地標籤。

請考慮意見JEROEN爲樸實的解決方案和使用框架

+2

+1)如果OP有權訪問,那麼一個更清潔的解決方案可能是通過'.htaccess'文件。 – jeroen

+0

是的,如果沒有,他可以使用'ob_ *'方法來獲取整個'/ website/index.php'通過include(NOT OUTPUT),然後使用'Regexp'將' Davit

+0

是的,但正如我剛纔在問題中提到的那樣,它會似乎取景可能是要走的路(取決於具體情況) – jeroen