2013-03-26 113 views
0

你好我正在第一次認真的去用PHP爲我的自己創建一個示例腳本。它的基本結構,在我的根文件夾,我有:PHP包括鏈接

  • 的index.php
  • 核心文件夾(持有我的大多數PHP函數文件)
  • 包括(持有我的header.php和footer.php )
  • 站點 - (位點3個具有更多的文件夾的網站A,B,C)
  • CSS
  • JS

甲通過從includes文件夾中獲取header.php和footer.php來構建頁面,然後每個頁面都有自己的內容。所述的header.php含有(以及基本的HTML和鏈接Javascript角樣式表ECT)從核心文件夾包括像這樣:

  • include_once「/core/connect.php」;

現在,使用index.php可以很好的工作,它提供了網站的三個不同部分的鏈接,sitea,siteb和sitec。

但是,當你瀏覽文檔根目錄來說/sites/sitea/index.php所有這些鏈接現在被打破。

什麼是最好的方式去建立在header.php部分的鏈接,所以他們是相對的網站廣無論你在哪個文件夾?

+0

確保有一個領先的'/'。 – MichaelRushton 2013-03-26 23:22:12

+0

嗨邁克爾是的所有鏈接上都有一個斜槓 – twigg 2013-03-26 23:23:43

+0

您是否收到錯誤消息? – MichaelRushton 2013-03-26 23:25:43

回答

1

背後的想法是,你只有一個文件的每個進程。

所以處理通過的index.php

index.php文件將包含所有頁面,例如,

require('header.php'); 
include('content.php'); 
require('footer.php'); 

這種方式,它不會破壞網站,如果您的內容不顯示。

您的索引始終從同一路徑加載,因此頁眉/頁腳不會更改。只是內容。

1

當你包括你想用一個真實的路徑,而不是相對路徑...

require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/header.php'); 
/* something happens here */ 
require_once ($_SERVER['DOCUMENT_ROOT'].'/includes/footer.php'); 
0

最好的辦法是要始終使用物理路徑無論你在哪裏 - 這樣每一個頁面包括其他頁面,包括將不會打破:

PHP 5.2,下:

require(dirname(__FILE__) . '/core/connect.php'); 

PHP 5.3及以上

require(__DIR__ . '/core/connect.php');