Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
致命错误:找不到类“PHPExcel\u Shared\u String”_Php_Codeigniter_Export To Excel_Phpexcel - Fatal编程技术网

致命错误:找不到类“PHPExcel\u Shared\u String”

致命错误:找不到类“PHPExcel\u Shared\u String”,php,codeigniter,export-to-excel,phpexcel,Php,Codeigniter,Export To Excel,Phpexcel,我在codeigniter应用程序中使用了PHPExcel,它在localhost中运行良好,但当我将其托管到服务器时,我遇到以下错误: 致命错误:在\xx\xx\xx中找不到类“PHPExcel\u共享\u字符串” 第三方\PHPExcel\Autoloader.php,第36行 在最新版本的PHPExcel中,对自动加载器进行了更改,似乎破坏了与PHP

我在codeigniter应用程序中使用了PHPExcel,它在localhost中运行良好,但当我将其托管到服务器时,我遇到以下错误:

致命错误:在\xx\xx\xx中找不到类“PHPExcel\u共享\u字符串” 第三方\PHPExcel\Autoloader.php,第36行


在最新版本的PHPExcel中,对自动加载器进行了更改,似乎破坏了与PHP<5.3.0版本的向后兼容性

如果编辑Classes/PHPExcel/Autoloader.php文件并更改第58行,则应为

return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'), true, true);

我已经对github上的develop分支进行了更改,以测试PHP版本并执行相应的行


虽然这不是故意的,但请注意,我们确实在尝试让用户升级到至少5.3.0版的PHP,因为我们无法解决使用大型电子表格的用户抱怨的任何内存/性能问题,除非我们能够使用PHP最新版本中的一些新功能。PHP的5.2版不再受支持,甚至5.3版也已过时,在今年年底之前将不受支持

最新版本的PHPExcel对自动加载器进行了更改,这似乎破坏了与PHP<5.3.0版本的向后兼容性

如果编辑Classes/PHPExcel/Autoloader.php文件并更改第58行,则应为

return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'), true, true);

我已经对github上的develop分支进行了更改,以测试PHP版本并执行相应的行


虽然这不是故意的,但请注意,我们确实在尝试让用户升级到至少5.3.0版的PHP,因为我们无法解决使用大型电子表格的用户抱怨的任何内存/性能问题,除非我们能够使用PHP最新版本中的一些新功能。PHP的5.2版不再受支持,甚至5.3版也已过时,在今年年底之前将不受支持

在Linux和PHP5.4x环境下,这一问题已经困扰了很长时间。最后,除了上面的修复之外,我还改变了Autoloader文件第73行的代码,该代码将$pClassFilePath变量从使用PHPEXCEL_ROOT的相对变量设置为机器文件树后面的绝对变量。这可能只是一次黑客攻击,但经过几天的尝试,它挽救了我的理智。希望这对别人有帮助。Cheers

在Linux和PHP5.4x环境下,很长一段时间都在努力解决这个问题。最后,除了上面的修复之外,我还改变了Autoloader文件第73行的代码,该代码将$pClassFilePath变量从使用PHPEXCEL_ROOT的相对变量设置为机器文件树后面的绝对变量。这可能只是一次黑客攻击,但经过几天的尝试,它挽救了我的理智。希望这对别人有帮助。干杯

我也遇到了这个问题,我通过将共享目录的权限更改为655解决了这个问题


我希望它能有所帮助

我也有这个问题,我通过将共享目录的权限更改为655解决了这个问题


我希望它能帮助你

如果你的服务器在Linux上,那可能是权限问题。。。只需在服务器端的供应商中添加PHPExcel文件夹的所有权限及其所有子文件夹。我也有同样的问题,我已经通过这种方式解决了…

如果您的服务器在Linux上,这可能是权限问题。。。只需在服务器端的供应商中添加PHPExcel文件夹的所有权限及其所有子文件夹。我也有同样的问题,我通过这种方式解决了它…

对我有效的是将PHPExcel/Autoloader.php第81行从

if ((file_exists($pClassFilePath) === FALSE) || (is_readable($pClassFilePath) === FALSE)) {


我更喜欢这种方法,因为它不需要我修改文件权限,应该可以在PHP5.3.2及更高版本中使用。

对我有效的是将PHPExcel/Autoloader.PHP第81行从

if ((file_exists($pClassFilePath) === FALSE) || (is_readable($pClassFilePath) === FALSE)) {


我更喜欢这种方法,因为它不需要我修改文件权限,应该可以在PHP5.3.2及更高版本中使用。

您是否有机会在windows上开发并部署到nix?其他一切都正常吗?或者..?您确定您已将完整的phpExcel库结构复制到live Server?这里的问题是您的本地和生产环境-您需要确保这两个环境都满足您的依赖性要求,即确保所有必需的库都存在并已加载。您正在运行什么版本的PHP?您是否在windows上开发并部署到nix?其他一切是否正常工作或..?是否确实复制了完整的PHP到live Server的phpExcel库结构这里的问题是您的本地环境和生产环境之间的不一致-您需要确保这两个环境都满足您的依赖性要求,即确保所有必需的库都存在并已加载。您运行的是什么版本的PHP?我们非常关注它,因为它太复杂了在与其他库集成时,在消除
e需要包括每一件事,即使它不需要保持内存使用率低。。。这并不意味着增加新的问题,除非人们不知道他们在做什么。。。自动加载程序意味着你只需要包含一个php文件,这个问题并不是自动加载程序的问题,它是一个向后兼容性问题。自动加载程序解决了一个非问题:一个库可能附带大量的php文件,它应该有一个名为include.php的文件,其中包含它自己的文件。为了使用这样的库,只需包含单个文件。这很简单吗?为什么不管您是否需要,都要从包含的单个文件中加载每个单独的文件?这是难以置信的内存浪费,而且效率很低。。。。自动加载器消除了这一切,只在需要时加载所需的文件,从而显著减少了潜在的内存过度使用问题。目前,PHPExcel库提供了一个单独的文件来包含自动加载器所需的文件。。。。那不是很简单吗?我们对它着迷是因为它非常有用,当它与其他库集成时,当它不再需要包含每一样东西时,即使不需要它来保持低内存使用率。。。这并不意味着增加新的问题,除非人们不知道他们在做什么。。。自动加载程序意味着你只需要包含一个php文件,这个问题并不是自动加载程序的问题,它是一个向后兼容性问题。自动加载程序解决了一个非问题:一个库可能附带大量的php文件,它应该有一个名为include.php的文件,其中包含它自己的文件。为了使用这样的库,只需包含单个文件。这很简单吗?为什么不管您是否需要,都要从包含的单个文件中加载每个单独的文件?这是难以置信的内存浪费,而且效率很低。。。。自动加载器消除了这一切,只在需要时加载所需的文件,从而显著减少了潜在的内存过度使用问题。目前,PHPExcel库提供了一个单独的文件来包含自动加载器所需的文件。。。。那不是很简单吗?