Php

包括一個可用於多個站點的 PHP 文件

  • March 25, 2012

我有一個我們使用的網路伺服器,apache,centos5,php

我有一個名為“include.php”的文件,我需要將其包含在多個站點中。

例如。我有一個名為 testsite.co.za 的站點,現在我想在 index.php 中包含 include.php 文件,include.php 不在 testsite.co.za 的根目錄中,

現在我在 web 根目錄中創建了另一個文件夾,其中包含 include.php

我的程式碼在 testsite.co.za/index.php 中如下所示

require_once '../includes/include.php';  

如果我執行 testsite.co.za 它無法檢測到 include.php。是否需要更改某些伺服器設置才能包含此文件?

我的目錄結構

-/var/www/html

  -testsite.co.za

      -index.php   
  -includes

      -include.php

希望這是有道理的

請記住,使用 時require '../[something]',您指的是 PHP 的工作目錄,而不是實際腳本的路徑。我更喜歡總是使用

require(dirname(__FILE__).'/path');

這樣,我知道我需要一個與 require 語句所在的文件相關的文件

因此,在這種情況下,您的包含將是:

require_once( dirname(__FILE__).'/../includes/include.php');

這是很久以前問過的,但是對於通過Google找到它的任何人,正確的答案是確保此文件位於 php.ini 中設置的 PHP include_path 中,或者通過 php.ini 將您的路徑添加到 php include_path 或在執行時通過 set_include_path() php 函式 [ http://php.net/manual/en/function.set-include-path.php ]

然後可以通過 include(‘myfile.php’) 或 require(‘myfile.php’) 訪問您的文件,它們都搜尋 PHP include_path 以及要包含的文件的目前目錄。

您還可以查看 php 5.2 或更低版本中的 __autoload() 或 php 5.3 和 5.4 中的 SplAutoloadRegister() 來創建函式以根據您希望通過創建該魔術函式的方式從文件中自動載入您的類,或者在後一種情況下註冊自動載入功能。

希望這將有助於沿途的人。

引用自:https://serverfault.com/questions/73686