PHPExcel for loop timeout

时间:2015-05-06 06:33:48

标签: php yii phpexcel

我有这个代码,我想设置从3到333,每30个间隔有一个行高,意味着在第3,33,63,93行直到333:

for ($i=3; $i<340; $i+30){
        $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(57);
}

但是当我点击控制器actionGenerate()时,30秒后它不会生成并超时。我能知道它为什么不产生?

如果我使用手动方式,就像逐行一样,PLUS有很多种不同的设置,我会筋疲力尽。

1 个答案:

答案 0 :(得分:3)

PHP限制了任何脚本的执行时间。默认时间为30秒。 您的脚本执行时间可能超过30秒。

set_time_limit设为0。 这将使其无限制。

像这样:

set_time_limit(0);
for ($i=3; $i<340; $i+=30){ // <--- here was your problem
        $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(57);
}

再试一次。

有关docs

set_time_limit的信息

- 编辑 -

问题出在for循环中。

$i + 3030添加到$i,但不会分配它。 它应该是$i +=30