【发布时间】:2012-06-27 20:29:37
【问题描述】:
我正在尝试使用 require_once 来调用 Mail.php,但是当我为该类创建一个新实例并开始使用它时,我收到一条消息
Fatal error: Class 'Mail' not found in D:\xampp\htdocs\proj\Mailing\mymail.php on line xx
恢复的代码是这样的
<?php
require_once 'Autoload.php';
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
?>
也可以
<?php
require_once 'Mail.php';
$mail = new Mail();
?>
为什么我会收到该消息? 我已经将包含路径设置为“.;D:\xampp\php\pear”
我编辑了我的脚本并需要自动加载脚本,它工作得很好,因为它不会打印任何错误,但我仍然收到同样的消息,比如邮件不起作用(我编辑了上面的脚本),自动加载是一样的我的主脚本所在的目录。
我新建了一个文件,用全路径调用,然后输出是
Warning: require_once(D:\xampp\php\PEAR) [function.require-once]: failed to open stream: Permission denied in D:\xampp\htdocs\proj\Mailing\pMail.php on line 2
【问题讨论】:
-
你确定Mail.php保存在文件夹D:\xampp\htdocs\proj\Mailing\mymail.php ???
-
你在哪里定义
Mail类?由于require_once调用显然是成功的(否则你会得到一个错误),问题是邮件类没有在包含的文件中定义。 -
Mail 是 PEAR 的 Mail.php 包中的一个类,所以它保存在 "D:\xampp\php\pear" 中,所以它的位置是 "D:\xampp\php\pear\Mail .php”,它不在项目文件夹中,但包含路径指向该目录。
标签: php include-path require-once