我有一个奇怪的问题,我无法弄清楚。我正在使用PEAR
从 PHP 页面发送邮件。该类Send_Mail
正在工作(使用 SMTP 发送邮件),但我收到与我的autoloader
.
Warning: include(classes/LOGIN.php)
[<a href='function.include'>function.include</a>]:
failed to open stream: No such file or directory in
C:\xampp\htdocs\mysite\initialize.php on line 46`
在我的initialize.php
文件中,我有这个:
function autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('autoloader');
在我的header.php
文件中,我正在为该站点加载几个 PHP 类:
// autoload PHP classes for site
autoloader('Navigation');
autoloader('Validation');
该错误是指我没有的 LOGIN 类。但是我搜索了整个站点文件夹,包括php
并在以下位置找到了这两行C:\xampp\php\PEAR\Net\SMTP.php
:
/* These standard authentication methods are always available. */
$this->setAuthMethod('LOGIN', array($this, '_authLogin'), false);
$this->setAuthMethod('PLAIN', array($this, '_authPlain'), false);
当我注释掉包含的行时,LOGIN
我得到了相同的警告,但是PLAIN
当我注释掉这两行时,警告消失了(但随后 SMTP 身份验证失败)。
为什么会这样?
更新
这是我的新的autoloader
:
function autoloader($class) {
if (file_exists('classes' . $class . '.php')) {
include 'classes' . $class . '.php';
}
}
但是,当我 echo'classes' . $class . '.php'
时,我得到了这个:
classes/.php
然后如果我把它改回不使用file_exists
它就可以了,但echo
仍然显示classes/.php