Límite de memoria de PHP Excel de 2 GB agotado al leer un archivo de 286 KB
Información adicional: estoy ejecutando esto desde la línea de comandos. CentOS 6, 32GB Ram total, 2GB de memoria para PHP. Intenté aumentar el límite de memoria a 4 GB, pero ahora tengo unFatal error: String size overflow
. El tamaño máximo de cadena de PHP es de 2 GB.
Mi código es un código de prueba muy simple:
$Reader = new SpreadsheetReader($_path_to_files . 'ABC.xls');
$i = 0;
foreach ($Reader as $Row)
{ $i++;
print_r($Row);
if($i>10) break;
}
Y es solo para imprimir 10 filas. ¿Y eso es llevar 2 gigabytes de memoria?
El error está ocurriendo en la línea 253 en excel_reader2.php
Dentro de la claseOLERead
, dentrofunction read($sFilenName)
Aquí está el código que causa mi agotamiento:
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;
}