【问题标题】:php includes that correctly links href from whereverphp 包括从任何地方正确链接href
【发布时间】:2017-08-18 08:03:05
【问题描述】:

我正在尝试包含一个带有 href 的 html 块。我想要做的只是维护一个包含文件。当前代码是:

<?php include __DIR__ . "/../../../includes/footer.php"; ?>

这个链接很好,除了footer.php文件中的任何hrefs必须以../../../开头,因为位置。这意味着我必须创建多个具有不同 href 的页脚文件。

显示文件夹结构(*表示需要包含相同php文件的位置):

ROOT
¦
+---includes
¦   ¦
¦   +---footer.php
¦
¦
+---main
¦   ¦
¦   +---maps
¦       ¦
¦       +---uk
¦           ¦
¦           +---map.php*
¦
+---gallery.php*
¦
+---assets
    ¦
    +---icons
        +
        ¦
        +---facebook_1.png

【问题讨论】:

  • 你可以使用文档根目录,像这样:require_once($_SERVER['DOCUMENT_ROOT'] . 'directory/directory/file');
  • 尝试使用$_SERVER["DOCUMENT_ROOT"]."/includes/footer.php" 从您的map.phpgallery.php 访问您的页脚文件
  • 当您说“footer.php 文件中的任何href” 时,您的意思是您正在那里输出的实际HTML 链接,对吧?那么处理恕我直言的最佳方法是使用相对于域的 URL,以斜杠开头。
  • 不幸的是,正如您所描述的那样使用两个 DOCUMENT_ROOT 根本不包含该文件。是的,我的意思是 html 链接。例如。 和@CBroe 这正是我希望采用的行为,但如果不使用../,它不会给我图像。 ./../
  • 那么assets 文件夹在您的文件夹结构中的什么位置......?

标签: php


【解决方案1】:

终于搞定了。 Mamp 令人困惑,我不得不在我的链接中包含 php。

在 MAMP>conf>apache>httpd.conf 下,我将 DocumentRoot 更改为 "/Applications/MAMP/htdocs/radventures.co.uk",因此它指向了我网站的根目录。

mamp 配置的可变文档根目录:

<?PHP
  if ($_SERVER['DOCUMENT_ROOT'] == '/Applications/MAMP/htdocs/radventures.co.uk'){
    $root = 'HTTP_ROOT';
  }
  else {
    $root = 'DOCUMENT_ROOT';
  }
  $link = "$_SERVER[$root]";
?> 

图片链接:

<img src="<?PHP echo ($link . "/assets/icons/facebook_1.png"); ?>

包括:

<?PHP include ($_SERVER['DOCUMENT_ROOT'] . "/includes/footer.php"); ?>

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2011-07-30
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2023-03-27
    相关资源
    最近更新 更多