PHPExcel在远程服务器上显示错误

Sat*_*ini 1 php phpexcel

我在我的php类中使用PHPExcel来生成xls文件.代码完全适用于我的localhost,但在远程服务器上显示错误.

错误是:

 <br />
<b>Warning</b>:  include(inc/classes/PHPExcel_Shared_String.class.php): failed to open stream: No such file or directory in <b>/home/example/../index.php</b> on line <b>13</b><br />
<br />
<b>Warning</b>:  include(): Failed opening 'inc/classes/PHPExcel_Shared_String.class.php' for inclusion (include_path='.:/usr/share/pear:/home/example/../inc/classes/Classes/') in <b>/home/example/../index.php</b> on line <b>13</b><br />
Run Code Online (Sandbox Code Playgroud)

我一直在互联网上搜索并找到了更新php版本并启用一些php库的解决方案,但是我的远程服务器上已经更新了.谁能告诉我这些错误在远程服务器上可能是什么原因?

我正在使用index.php文件,其中我有一个默认的__autoloader()函数来加载所有.class文件和另一个名为excelgenerate.php的文件,其中我再次使用相同的自动加载器来加载该类文件.在这个文件中,我有一个函数,我使用PHPExcel代码通过包含PHPExcel.php来生成excel文件.这是我收到错误的流程.

Mar*_*ker 5

PHPExcel文件不是

PHPExcel_Shared_String.class.php
Run Code Online (Sandbox Code Playgroud)

它的

PHPExcel/Shared/String.php
Run Code Online (Sandbox Code Playgroud)

看起来你可能有一个与PHPExcel自动加载器冲突的自动加载器:尝试使用SPL_autoload_register()

编辑

引用PHP文档(开发人员文档的第3.2节)

PHPExcel实现了自动加载器或"延迟加载器",这意味着不必在PHPExcel中包含每个文件.只需要包含初始PHPExcel类文件,然后自动加载器将在需要时包含其他类文件,因此只有脚本实际需要的那些文件才会加载到PHP内存中.这样做的主要好处是它减少了PHPExcel本身的内存占用,因此它使用较少的PHP内存.

如果您自己的脚本已经定义了自动加载功能,那么这可能会被PHPExcel自动加载功能覆盖.例如,如果您有:

function __autoload($class) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

改为:

function myAutoload($class) {
    ...
}
spl_autoload_register('myAutoload');
Run Code Online (Sandbox Code Playgroud)

然后,您的自动加载器将与PHPExcel的自动加载器共存.