所以我解决了我解决的PHP代码问题,但我真的不知道它是如何工作的。
我尝试将其添加到每个文件
<?php include '/nav.php'; ?>
所以我只能有一个文件来编辑导航栏而不是整个php文件。
当我将该代码添加到另一个文件夹的文件(即.general/vision.php)时出现问题,我收到错误(找不到文件)。我虽然这是因为我只在网站的根目录上有'nav.php'文件。
所以,为了好玩,我将/general/vision.php文件的句子改为
<?php include '../nav.php'; ?>
它有效。我没有从root用户更改nav.php,而且工作正常。
我很高兴,但我不知道为什么。那个/../是如何工作的? 这是在PHP文档中列出的吗?
答案 0 :(得分:5)
..
是“up a directory”的操作系统术语。它不是特定于PHP的。
看看相对路径的概念......可能会有所启发。 Relative paths vs Absolute paths
答案 1 :(得分:4)
..
指的是父目录。这是所有操作系统的标准配置。
答案 2 :(得分:1)
PHP是一种服务器端脚本语言,这意味着根目录/
不是您网站的文档根目录,而是服务器上文件系统的根目录。
通过使用/
开始路径,您将从根目录开始指定文件的绝对路径。您可以使用例如..
来提升一个级别来构建相对于当前目录的路径。
您还可以使用PHP中的__DIR__
常量构建绝对路径,该常量始终包含包含当前PHP文件的目录的完整绝对路径,例如include __DIR__ . '/../nav.php';
。
答案 3 :(得分:1)
虽然您通过在include路径中包含..
(父目录)解决了问题,但最好包含这样的php文件:
include $_SERVER['DOCUMENT_ROOT']."/nav.php";
然后,您可以将您的PHP文件保存在DOCUMENT_ROOT中的任何位置,并且仍然可以包含此nav.php
文件。
PS :将常见的包含文件保持在DOCUMENT_ROOT
之上是一种很好的做法,这样浏览器就无法直接访问这些文件。