php - 函数require-once无法找到文件

时间:2016-10-20 06:35:24

标签: php phpmailer

我正在实施一个代码,访问者可以通过电子邮件发送给我们公司。

在我的gmail.php中,它有第11行的代码

require_once('PHPMailerAutoload.php') or exit();

它给出的错误是我运行时的错误

Warning: require_once(1) [function.require-once]: failed to open stream: No such file or directory in /home/maxsell/public_html/php/gmail.php on line 11

Fatal error: require_once() [function.require]: Failed opening required '1' (include_path='/home/maxsell/php:.:/usr/lib/php:/usr/local/lib/php') in /home/maxsell/public_html/php/gmail.php on line 11

如果我点击[function.require-once]就会加载

The requested URL /php/function.require-once was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

我在我们的其他网站上做了这个,它在那里工作。我尝试更改require_once中的文件路径,但它不起作用。 gmail.php和PHPMailerAutoload.php在同一个文件夹中。

编辑:这是一个目录内容 directory contents

2 个答案:

答案 0 :(得分:0)

你可以使用这个,希望这对你有用

require_once($_SERVER['DOCUMENT_ROOT'].'/phpmailerfoldername/PHPMailerAutoload.php');

答案 1 :(得分:0)

问题是or exit() - 部分。

当我使用

require_once("test.php") or exit();

我得到了同样的错误,但是

require_once("test.php");

如果文件存在则有效,如果不存在则抛出正确的错误。

另外,常用语法是

require_once "test.php";

并且or exit()部分无论如何都是多余的,因为如果找不到该文件,则需要退出脚本本身。

修改

经过一些测试后,我怀疑这个奇怪错误的内部运作是require_once不是一个函数而是一个命令结构,这意味着

require_once('PHPMailerAutoload.php') or exit();

在功能上与

相同
require_once ('PHPMailerAutoload.php' or exit());

因为or - 运算符优先。

这使得您的要求失败,因为('PHPMailerAutoload.php' or exit())解析为true,有效地让php尝试require(true)必须失败。