HTML-选择根目录的路径?

时间:2017-11-24 22:17:09

标签: php html

在我的第一个网站上工作,除了......之外一切顺利,

我在每个页面上使用相同的标题(带下拉菜单)和页脚。由于我稍后将使用样式拨号,我为每个设置了一个html文件,我使用php include将它们插入到页面中,这样我就可以在一个地方编辑标题。

这很有效,直到我需要在子目录中创建一些页面(以保持组织有序)。现在,我正在用标题链接玩弄w鼹鼠。链接到标题中的页面都在public_html文件夹中。我想通过在文件名前加一个/,无论当前页面的位置如何,它都可以工作,但事实并非如此。

我正在寻找一种方法来创建一个链接,可以从/public_html/page2.php和public_html / Subdirectory / page3.php找到public_html / index.php。我考虑使用绝对链接,但是我使用XAMPP在localhost副本上进行大部分编辑,然后上传到服务器。此外,看起来每个人都同意这种不良形式。

我一直在寻找线索,但我不确定我是否正确地构建了这个问题。希望这是有道理的。

感谢。

1 个答案:

答案 0 :(得分:0)

“基本”方法

我以前用它做的方法是在根php文件中定义__BASE__,所以在你的情况下我猜是index.php文件。它看起来像这样:

<?php 

    define('__BASE__', __DIR__);

    // other stuff and includes in index.php

然后我在index.php中包含/要求的任何文件都可以使用该costant,所以假设您包含classes/anything.php。然后在该文件中,您可以尝试echo __BASE__常量,看看你得到了什么。

<?php 

    echo __BASE__; // the absolute path to index.php (not always the root of your project)

如果您的index.php文件位于项目的root之外,我建议您重写__BASE__路径到根目录。

假设您有index.php/public_folder/目录,那么您的__BASE__将设置为__DIR__.'/../',因此它指向您的根目录。

通过这种方式,您可以轻松访问所有文件,因为__BASE__非常适合项目的根目录,您可以非常轻松地构建所需文件的路径。

为了更好地解释它,让我们说你的结构是:

/ -> root of your project
/www/ -> root of the web server
/web-parts/ -> some of your files

然后在index.php目录中的/www/内,您将定义__BASE__,就像我在第一个示例中所做的那样,添加了/../(然后指向您的/ [所谓的“root”]目录)。

之后,让我们说你在/web-parts/文件夹中包含一些文件。

include(__BASE__.'web-parts/header.php'); // including some header.php file from /web-parts/ path

当然,当您在__BASE__文件中定义index.php后,其中包含header.php文件,您仍然可以使用__BASE__内的header.php {1}}。因此,例如,假设您需要将metas.html路径中的/web-parts/someotherdirectory/文件导入header.php文件。

<?php 
// header.php file
include(__BASE__.'web-parts/someotherdirectory/metas.html'); // you're still able to do this and you're still getting the absolute path

......你走了。通过这种方式,您可以保持组织有序,并且在部署Web应用程序时不会出现任何问题。

<强>作曲

我不确定你现在所处的水平,但如果你使用对象编程你是web应用程序,你可以使用composer的自动加载来加载类。如果你不这样做,你一定要看看面向对象的编程,因为它现在非常需要。

如果我对这个问题的理解不当,我很抱歉,但是如果这样做对您没有帮助,您可以考虑共享代码示例。