已更新 - 已修改
我想使用来自不同目录的菜单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
查看示例。在第一行,有两个类别。 “/类别/类别/".
答案 0 :(得分: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']
不同的路径。
答案 1 :(得分:0)
使用绝对路径而不是相对路径。
示例:include('/ data / web / 123456 / html / settings / settings.php');
而不是 包括( '的settings.php');此外,我认为require_once()函数在这里更合适。
答案 2 :(得分:0)
您有两种选择: 1。 @rocket给了你可能的问题答案,但是你忽略了它: 如果你包含像'/menu.php'这样的文件,请注意'/'它将包含一个依赖于根文件夹的menu.php文件。根据您的需要进行调整,但不要忘记斜线。
2。
如何使用dirname(__DIR__)
作为文件名称所包含的路径。在你的情况下:
include dirname(__DIR__).'/menu.php'