繁体   English   中英

PHP包含在包含中

[英]PHP include inside an include

我有三个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
    • 文章
      • Sample.php

当我访问Sample.php时, include("ConnectToDB.php");出现错误include("ConnectToDB.php"); include("../Top.php"); 声明。 但是如果我的文件OtherSample具有include("Top.php"); 声明我不会出错,并且Top.php和ConnectToDB.php都可以正常工作。 问题是什么?

您可以使用:

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

要包含文件,通过这种方式,您始终拥有一个包含的绝对路径,并且与调用的位置无关。

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

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

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

路径错误,通过调用Sample.php,所有路径都属于Sample.php所在的库。 PHP在错误的文件夹中搜索ConnectToDB ...请尝试../ConnectToDB.php,从Sample.php文件开始,此文件位于上面的一个文件夹中...

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

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

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

那么您可以访问正确的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM