1

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

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

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

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

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

在这里,文件系统的顺序如下:

  • 根文件夹
    • ConnectToDB.php
    • 顶部.php
    • 其他示例.php
    • 文章
      • 示例.php

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

4

4 回答 4

5

你可以使用:

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

包含文件,这样你总是有一个包含的绝对路径,它不依赖于它被调用的位置。

于 2012-05-03T14:05:03.863 回答
3

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

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

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

于 2012-05-03T13:25:07.300 回答
1

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

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

于 2012-05-03T13:25:22.450 回答
0

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

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

然后您可以访问正确的路径。

于 2014-07-17T07:28:50.893 回答