1

我有这样的文件夹结构:

  public_html
     /index.php   
  outside
     /other.php

我想要public_html/index.php包含文件,该文件位于outside文件夹中。所以,我想在文件中定义外部文件夹路径public_html/index.php。我这样做:

索引.php

 $doc_root_upper = preg_replace("#/[^/]+$#", "", $_SERVER["DOCUMENT_ROOT"]);
 $outside_folder = $doc_root_upper."/outside";
 include outside_folder.'/other.php';

这行得通,但是在文件夹路径之外定义 webroot 有更好的做法吗?

4

3 回答 3

2

我个人的init.php偏好auto_prepend_file是以chdir($_SERVER['DOCUMENT_ROOT']).

这意味着我所有的包含和其他文件功能都是从文档根目录完成的。

就您而言,这意味着您可以include ../outside/other.php可靠地进行操作。

于 2013-01-29T19:06:12.967 回答
2

使用这样的相对路径:

Include("../outside/other.php");

../ 表示向上一个目录。

于 2013-01-29T19:07:04.903 回答
1

我喜欢使用 achdir()来获取显式路径,然后将它们添加到包含路径中。我倾向于有一个名为的文件init.php,其中包含以下内容:

$path = get_include_path(); // get the current path
$oldcwd = getcwd(); // get the current path

// change to outside of the document root
chdir($_SERVER['DOCUMENT_ROOT'] . "/.."); 
$newcwd = getcwd(); // get the new working directory

// build the new path. Using hte _SEPARATOR constants ensures 
// that it works on all platforms.
$newpath = $path . PATH_SEPARATOR . $newcwd . DIRECTORY_SEPARATOR . "outside"; 

// Set the new path
set_include_path($newpath);

chdir($oldcwd); // change back to the original working directory
于 2013-01-29T19:11:47.503 回答