【问题标题】:PHP - Include fixed pathPHP - 包含固定路径
【发布时间】:2015-08-25 15:19:25
【问题描述】:

更新 - 编辑

我想使用来自不同目录的菜单 PHP 文件。

问题是当我调用文件时。示例:

Include menu.php from categories folder:http://localhost/admin/categories/categories/cars Include
Include menu.php from index folder: http://localhost/admin/categories/cars
Note that the menu file is not in a folder (index /).

问题是在菜单路径之前自动添加我调用(包括)文件的目录。我不希望这样,我希望包含 menu.php 的所有文件夹的路径都相同

参见示例。在第一行,有两个类别。 “/categories/categories/”。

【问题讨论】:

  • 你的意思是menu.php在不同的目录下?
  • 使用您所包含文件的绝对路径? include '/menu.php';
  • bicho 不,我想使用来自不同目录的 menu.php。 @RocketHazmat 你能给我举个例子吗?我使用 xammp,我认为绝对路径不是最好的方法。
  • “使用来自不同目录的 menu.php”是什么意思?如果无论您身在何处都想使用 same menu.php,那么绝对路径就是答案。我想如果您真的想要,那么您可以使用set_include_path() 来更改“包含路径”:set_include_path(get_include_path() . PATH_SEPARATOR . $path);
  • @RocketHazmat 现在让它更干净了。你能给我一个“新”的答案吗?

标签: php menu path directory


【解决方案1】:

使用include_once 可能更方便,因为这样可以保证它只包含一次。

此外,您最好使用绝对路径 (include "/menu.php";)。您当前正在使用相对路径 (include "menu.php";)。

由于 PHP 是一种服务器端语言,您可能需要从根路径中包含它,这意味着您将获得一个类似于 /home/username/public_html/menu.php 的路径。解决此问题的最简单方法是像这样包含您的 menu.php:include $_SERVER['DOCUMENT_ROOT']."/menu.php";

要找到您的menu.php 所在的确切路径(从而找出您需要从哪个路径包含它),请在您的 menu.php 中运行 echo $_SERVER["SCRIPT_FILENAME"];,因为它可能是不同的路径$_SERVER['DOCUMENT_ROOT'].

【讨论】:

    【解决方案2】:

    使用绝对路径而不是相对路径。

    示例:include('/data/web/123456/html/settings/settings.php');

    而不是 包括('settings.php');

    另外我认为 require_once() 函数更适合这里。

    【讨论】:

      【解决方案3】:

      您有两个选择: 1. @rocket 为您的问题提供了可能的答案,但您忽略了它: 如果您包含像“/menu.php”这样的文件,请注意“/”,它将包含一个依赖于根文件夹的 menu.php 文件。根据您的需要调整它,但不要忘记斜线。

      2。 使用dirname(__DIR__) 作为文件名后跟的路径怎么样。在你的情况下:

      include  dirname(__DIR__).'/menu.php'
      

      【讨论】:

      • 问题是在菜单路径之前自动添加我调用(包括)文件的目录。我不希望这样,我希望包含 menu.php 的所有文件夹的路径都相同
      猜你喜欢
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2013-11-09
      相关资源
      最近更新 更多