我在我的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文件.这是我收到错误的流程.
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的自动加载器共存.
| 归档时间: |
|
| 查看次数: |
5272 次 |
| 最近记录: |