PHP - 重定向并包含来自不同目录的文件

时间:2013-12-24 20:16:22

标签: php include directory web-hosting include-path

所以我想说我有这个给定的目录

的public_html

  • home
    • 用户
      • page1.php中
    • 注册
      • reg.php
    • 使page2.php
  • CSS
    • general.css

的index.php

现在假设我想在page1.php中包含page2.php 我这样做:

包括“/home/page2.php”;

但它不起作用,/应该是根目录(public_html)。

或者我想从reg.php重定向到index.php

“/ index.php”不起作用。

注意:这都在托管服务器上。

3 个答案:

答案 0 :(得分:4)

/不是站点根目录,它是操作系统文件系统的根目录。

你可以像这样使用相对路径修饰符:../../yourincludefile.php向上导航文件系统

或者您可以使用$_SERVER['DOCUMENT_ROOT']来调用操作系统的完整路径。 DOCUMENT_ROOT将为您提供更一致的结果,并允许您包含相同的文件,无论您在目录层次结构中的哪个位置工作。

例如,如果你有includes/functions.php,你可以在任何地方使用它,在任何脚本上,它将始终包含正确的文件路径:

include_once($_SERVER[DOCUMENT_ROOT] . "/includes/functions.php");

或使用字符串中的引用:

include_once("$_SERVER[DOCUMENT_ROOT]/includes/functions.php");

答案 1 :(得分:0)

您应该能够使用相对路径,即:
 我想在page1.php中包含page2.php我这样做:

include "../page2.php";  

我想从reg.php重定向到index.php

"../../index.php"  

或者如果你在谈论public_html中的index.php,

"../../../index.php"   

答案 2 :(得分:0)

选项1 - 文件相对:

include("../path/to/file.php");

选项2 - 根相对

$root = $_SERVER['DOCUMENT_ROOT'];
include($root."/path/to/file.php");