PHP include在同一文件夹内也无法工作

5

reg.php位于members文件夹中

<?php include "members/reg.php";?>  // doesn't work
<?php include ("members/reg.php");?>  // doesn't work

然后我将reg.php替换为与当前文件位于同一文件夹中的文件。

<?php include "reg.php";?>  //doesn't work.

1
尝试通过添加一些空格-> <?php include "reg.php"; ?>,虽然不是非常确定,但为了清晰起见。 - swapnesh
1
尝试打开错误报告,看看它给出了什么错误。可能是权限问题。 - Sivagopal Manpragada
3
你检查过文件权限了吗?(如果你在使用Linux) - Tepken Vannkorn
1
什么是包含路径?http://php.net/manual/en/function.get-include-path.php - Ron van der Heijden
5
在开发过程中,始终使用 E_ALL。具体信息请参考:http://php.net/errorfunc.constants - Gumbo
显示剩余4条评论
7个回答

15

试一下这个

ini_set( 'error_reporting', E_ALL );
ini_set( 'display_errors', true );

include './members/reg.php';
可能 include 工作了,但引起了一条被屏蔽的错误。

2

使用:

define('ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);

你可以定义你的项目的根目录(也就是你放置文件的目录),然后调用:

include ROOT."members/reg.php";

1
问题是如果'member/reg.php'是当前工作目录中的子文件夹和文件,它应该可以正常工作。因为PHP会在include_path中查找包括文件,也会在当前目录中查找。 - cryptic ツ
@cryptic,使用这种方法总是有效的,因为它始终使用绝对路径。 - Shoe
我同意这样做可能有效,但并没有解决为什么它在 应该 有效时却无法正常工作的问题。提供另一种方法并不能解决当前的困境。但显然 OP 找到了解决办法。 - cryptic ツ

2

确保您的主网页文件扩展名为.php而不是.htm。如果它没有.php扩展名,那么include将无法工作。您将不会收到错误或警告。它只是不起作用。


1

你也可以尝试:

<?php include("../members/reg.php") ?>

这两个点告诉 include 命令进入上一级文件夹,然后再进入 'members' 文件夹。


0

也许你需要改变 / ,因为在 Windows 和 Linux 中是不同的。你可以使用 DIRECTORY_SEPARATOR 代替。

include_once "Model".DIRECTORY_SEPARATOR."MyFile.php";

0

我遇到了类似的错误。当我删除了被包含文件中的"?>"时,它就可以正常工作了。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Manjunath Reddy

-1

在开始之前,在将reg.php设置为当前文件夹之前,您应该尝试以下操作:

<?php include('../members/reg.php') ?>

如果你这样做
<?php include('members/reg.php') ?> 

你的程序会认为当前文件夹里有一个名为members的文件夹,但实际上并没有。两个点告诉你要返回到上一级文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接