【问题标题】:PHP include inside an includePHP 包含在包含中
【发布时间】:2012-05-13 00:30:36
【问题描述】:

我有三个 php 文件。 “上部”文件是一个网页(我们称之为 Sample.php)。在页面顶部它执行以下操作:

<body>
<?php include("../Top.php"); ?>
//Webpage content
</body>

Top.php 文件是一个存储了菜单和横幅的文件,以便于更改。 Top.php 文件有这样一行:

<?php include("ConnectToDB.php"); ?>

ConnectToDB.php 是一个包含一些用于连接数据库的 php 代码的文件。

这里,文件系统是这样排序的:

  • 根文件夹
    • ConnectToDB.php
    • Top.php
    • OtherSample.php
    • 文章
      • 示例.php

当我访问 Sample.php 时,我在 include("../Top.php"); 语句中的 include("ConnectToDB.php"); 中遇到错误。但是如果我有文件OtherSampleinclude("Top.php"); 语句,我不会收到错误,Top.php 和 ConnectToDB.php 都可以正常工作。有什么问题?

【问题讨论】:

  • 我可能错了,但我认为你必须包含("../ConnectToDB.php");在 Top.php 上也是如此
  • 抱歉解释不正确, 在 Top.php 中
  • 是的,但是你需要添加 ../ 因为文件路径是相对于 sample.php 的,就像 radashk 和 Tobiask 说的那样
  • 是的,我只是在寻找一种实现真实路径的方法,因为不同目录中的多个页面可以访问它。 radashk 的相对路径不起作用。
  • 我想你没有理解我们所说的,你是否这样做了 include("/RootFolder/ConnectToDB.php") ?将其更改为 include("../ConnectToDB.php") 是否有效?

标签: php filesystems include directory


【解决方案1】:

你可以使用:

include_once($_SERVER['DOCUMENT_ROOT'].'/RootFolder/whatever.php');

要包含文件,这样您始终拥有包含的绝对路径,并且它不依赖于它的调用位置。

【讨论】:

    【解决方案2】:

    “include”语句实际上将代码移植到您的页面中。所以请记住,include("ConnectToDB.php") 是从 Sample.php 执行的,因此路径是错误的。

    正确的代码行是:include("../RootFolder/ConnectToDB.php")

    其中.. 代表"localhost/" 之后的整个目录结构或您正在使用的任何内容。

    【讨论】:

    • 另外,你应该使用include_once() top 防止两次加载文件......
    • 它不起作用。虽然我猜这是解决方案,但我得到错误 No such file or directory for the function include("/RootFolder/ConnectToDB.php") inside Top.php
    【解决方案3】:

    路径错误,调用Sample.php,所有路径都属于Sample.php所在的base。 PHP 在错误的文件夹中搜索 ConnectToDB... 试试../ConnectToDB.php,和Sample.php文件一样,这个文件在上面一个文件夹中...

    更好的解决方案,使用绝对路径!

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。不幸的是,萨姆森的回答不能为我解决问题。 你可以试试这个。这对我来说可以。 添加文件是否存在检查,然后在 Top.php 中添加正确的路径 像这样

      <?php
      if (file_exists("ConnectToDB.php")) {
          include_once("ConnectToDB.php");
      }elseif(file_exists("../ConnectToDB.php")){
          include_once("../ConnectToDB.php");
      }
      ?>
      

      那么你就可以访问正确的路径了。

      【讨论】:

        猜你喜欢
        • 2013-01-07
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 2016-02-17
        相关资源
        最近更新 更多