Server PHP包括在本地文件夹之前搜索Shared文件夹

时间:2015-01-07 10:53:08

标签: php phpmailer require

我是使用Apache和PHP 5.5的cPanel的经销商,我的服务器所有者刚刚在共享文件夹上安装了最新的PHPMailer,因此可以从以下位置访问:

require "PHPMailerAutoload.php"; 

但是,我所有当前站点都在我的类文件夹中有PHPmailer,并有一个扩展类来自定义每个站点的邮件程序详细信息。

所以,我的PHP类有:

require_once "class.phpmailer.php";

class ChoiceMailerSMTP extends PHPMailer {
            /**
            * Mailer 
            *
            **/

我的问题是,因为我的服务器人已经放置了共享文件夹,新的PHPMailer,现在所有我需要的调用都在搜索共享文件夹 BEFORE 搜索本地文件夹,因此加载错误的phpmailer.class.php。

这真的很令人沮丧,虽然在这种情况下它只是一个麻烦 - 如果他把其他文件放在共享文件夹中供自己或其他人使用,我的意思是如何确保我的PHP包含和要求运行本地而不是共享文件?

我可以使用php.ini中的一行吗?或者也许是cPanel设置? 要求" ./ file"不起作用。

编辑:

我一直在对我的系统进行一些研究,发现set include path已设置为:

include_path = ".:/usr/lib/php:/usr/local/lib/php"

那么为什么只在include路径目录之后搜索本地目录的任何帮助?

2 个答案:

答案 0 :(得分:1)

相对路径的包含顺序取决于设置包含路径,请参阅set_include_path。您可以修改包含路径以确定本地文件夹的优先级,也可以使用包含的显式绝对路径开头:

require_once __DIR__ . '/class.phpmailer.php';

答案 1 :(得分:0)

共享版本有什么问题?它比你的年龄大吗?

您可以通过更改php.ini中的include_path指令来调整搜索目录的顺序。

你应该加载自动加载器,因为它总是查找相对于它自己的类文件,所以,类似于@deceze的建议,你应该这样做:

require_once __DIR__ . '/PHPMailerAutoload.php';