P粉9767371012023-08-22 16:44:45
如果我理解你的意思正確的話,你有兩個資料夾,一個是你想要將其 include
到另一個資料夾中的php腳本所在的資料夾?
如果是這種情況,你只需要正確地按照路徑進行操作。 假設你的資料夾結構如下:
root includes php_scripts script.php blog content index.php
如果這是你提出的資料夾結構,並且你想要將 "Script.php" 檔案包含到 "index.php" 資料夾中,你需要這樣包含它:
include("../../../includes/php_scripts/script.php");
我做的方式是視覺化的。我將滑鼠指標放在 index.php 上(查看文件結構),每次我向上進入一個資料夾,我就輸入另一個 "../"。然後你必須確保你向上進入的是你想要開始進入的資料夾的上層資料夾結構。之後,就是正常的資料夾層次結構。
P粉6148403632023-08-22 09:38:21
您可以使用$_SERVER['DOCUMENT_ROOT']
從每個網站內部存取根目錄。 僅用於測試,您可以列印出路徑以確保它正常工作,如果您以正確的方式進行操作。 您絕對不希望顯示本機伺服器路徑,例如包含和需要。
網站1
echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/';
網站1下的包含檔案應該在:
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // 应该是 '/main_web_folder/includes/';
網站2
echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/blog/';
從網站2存取網站1中的包含檔案的實際程式碼:
include($_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php');
如果您嘗試透過排除document root
和root
斜線來存取文件,則只會使用執行查詢的文件的相對路徑(不是絕對可靠或非平台特定):
include('../includes/file_from_site_1.php');
包含的路徑在站點前端(線上)的任何程式碼中都沒有位置,應該在僅限於生產環境中進行安全使用。
此外,對於網站本身的URL,您可以使它們相對於網域名稱。瀏覽器會自動填入其餘部分,因為它們知道自己正在查看的頁面。所以,不要使用:
<a href='http://www.__domain__name__here__.com/contact/'>联系</a>
而應該使用:
<a href='/contact/'>联系</a>
為了良好的SEO,您需要確保部落格的URL在其他網域中不存在,否則可能會被標記為重複網站。在這種情況下,您可能還想在僅限於網站1的robots.txt
檔案中新增一行:
User-agent: * Disallow: /blog/
尋找您的IP位址並包含以下程式碼片段:
function is_dev(){ //使用来自Google的外部IP。 //如果您在本地托管,它是127.0.01,除非您更改了它。 $ip_address='xxx.xxx.xxx.xxx'; if ($_SERVER['REMOTE_ADDR']==$ip_address){ return true; } else { return false; } } if(is_dev()){ echo $_SERVER['DOCUMENT_ROOT']; }
請記住,如果您的ISP更改了您的IP,例如您具有DCHP動態IP,則需要更改該檔案中的IP以查看結果。我建議將該檔案放在一個包含檔案中,然後在偵錯頁面上要求它。
如果您可以使用瀏覽器的控制台日誌等現代方法,您可以使用以下程式碼,並在瀏覽器的偵錯介面中查看它:
if(is_dev()){ echo "<script>".PHP_EOL; echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL; echo "</script>".PHP_EOL; }