Limite de memória do PHP Excel de 2 GB esgotado lendo um arquivo de 286 KB
Addtitional info: Estou executando isso a partir da linha de comando. CentOS 6, 32GB Ram total, 2GB de memória para PHP. Eu tentei aumentar o limite de memória para 4GB, mas agora eu recebo umFatal error: String size overflow
. O tamanho máximo da string do PHP é de 2 GB.
Meu código é um código de teste muito simples:
$Reader = new SpreadsheetReader($_path_to_files . 'ABC.xls');
$i = 0;
foreach ($Reader as $Row)
{ $i++;
print_r($Row);
if($i>10) break;
}
E é apenas para imprimir 10 linhas. E isso está levando 2 gigabytes de memória?
O erro está ocorrendo na linha 253 no excel_reader2.php
Dentro da turmaOLERead
, dentrofunction read($sFilenName)
Aqui está o código causando meu esgotamento:
if ($this->numExtensionBlocks != 0) {
$bbdBlocks = (BIG_BLOCK_SIZE - BIG_BLOCK_DEPOT_BLOCKS_POS)/4;
}
for ($i = 0; $i < $bbdBlocks; $i++) { // LINE 253
$bigBlockDepotBlocks[$i] = GetInt4d($this->data, $pos);
$pos += 4;
}