PHPExcel$objWriter->save()失败

PHPExcel$objWriter->save()失败,php,apache2,phpexcel,Php,Apache2,Phpexcel,我正在使用PHPExcel根据数据库中的记录创建一个Excel文件,在大型数据集上生成该文件时遇到了一个奇怪的问题。我已将其缩小为一条引起问题的线路: $objWriter->save('php://output'); 它只是吐出一个空白文件,而不是预期的工作簿。此外,如果我尝试将结果保存到本地文件中,而不是重定向到浏览器,则效果类似-从未创建任何文件 更重要的是,在这两种情况下,它都适用于较小的数据集,较小的=最多200行,较大的=最多2000行,最多20列。它还可以在另一台开发服务器

我正在使用PHPExcel根据数据库中的记录创建一个Excel文件,在大型数据集上生成该文件时遇到了一个奇怪的问题。我已将其缩小为一条引起问题的线路:

$objWriter->save('php://output');
它只是吐出一个空白文件,而不是预期的工作簿。此外,如果我尝试将结果保存到本地文件中,而不是重定向到浏览器,则效果类似-从未创建任何文件

更重要的是,在这两种情况下,它都适用于较小的数据集,较小的=最多200行,较大的=最多2000行,最多20列。它还可以在另一台开发服务器上使用完全相同、100%相同的大型数据集

我确实将save调用包装在try-catch中,但没有引发异常。在执行save之前执行memory_get_peak_usage会告诉我它使用了24MB,我在脚本前面设置了'memory_limit','-1'。此外,在运行脚本时监视服务器上的内存使用情况也不会显示任何显著增加

调试它有什么提示吗

编辑:apache日志中没有错误,但是我注意到access日志中的相关行显示:

10.1.1.1 - - [01/Jun/2011:08:35:03 -0400] "GET /get_excel.php HTTP/1.1" 200 16386

奇数部分是最后一列的大小。我实际下载的文件总是空的——正好是0位,而不是16386位。

根据您在评论中给出的反馈,我认为您不符合所有要求。您可以找到要求列表。

根据您在评论中给出的反馈,我认为您不符合所有要求。您可以找到需求列表。

Web服务器的error.log中是否有任何内容?Web服务器没有错误。这16386位可能包含所有标题信息等。最好与Firebug等一起检查到底发送了什么。虽然这一点可能无法解决您的问题。我在这里读到:这个数字不包括标题信息。另外,在调试它的内存使用情况时,我在头文件之后但在保存之前回显使用情况信息,这个数字是27-更合理。请注意,16386对我的文件来说太小了。根据我从工作服务器获得的信息,它应该更像70-80KB。当您在本地写入文件,然后使用FTP等下载文件时,它是否工作?那你能打开文件吗?我也有过同样的问题,但我不记得我是如何解决的。可能是我没有安装php xml。Web服务器的error.log中是否有任何内容?Web服务器没有任何错误。这16386位可能包含所有标题信息等。最好与Firebug等一起检查到底发送了什么。虽然这一点可能无法解决您的问题。我在这里读到:这个数字不包括标题信息。另外,在调试它的内存使用情况时,我在头文件之后但在保存之前回显使用情况信息,这个数字是27-更合理。请注意,16386对我的文件来说太小了。根据我从工作服务器获得的信息,它应该更像70-80KB。当您在本地写入文件,然后使用FTP等下载文件时,它是否工作?那你能打开文件吗?我也有过同样的问题,但我不记得我是如何解决的。可能是因为我没有安装php xml。如果我没有要求,我如何能够使用同一服务器上的同一脚本从其他数据集创建Excel文件?可能是最大运行时间对于php脚本来说太小了。正如您所见,生成文件有时需要几分钟:超时时间肯定比运行时间长。如果我没有要求,我如何能够使用同一服务器上的同一脚本从其他数据集创建Excel文件?可能是最大运行时间对于您的PHP脚本来说太小了。正如您所见,生成文件有时需要几分钟:超时时间肯定比运行时间长。