Foros del Web » Programando para Internet » PHP »

PHPExcel: Out of memory

Estas en el tema de PHPExcel: Out of memory en el foro de PHP en Foros del Web. Muy buen dia a todos. Estoy haciendo una aplicacion que debe leer al rededor de 35 mil registros de un archivo de excel y guardar ...
  #1 (permalink)  
Antiguo 20/05/2013, 12:37
 
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta PHPExcel: Out of memory

Muy buen dia a todos.

Estoy haciendo una aplicacion que debe leer al rededor de 35 mil registros de un archivo de excel y guardar ciertos campos en una BD de mysql.

Lo hago con phpExcel. Al iniciar el bucle y leer linea por linea, al principio me presentaba el errror : "Fatal error: Out of memory (allocated ######) (tried to allocate #### bytes)".

Lo solucione añadiendo a la primera linea de mi archivo y asi le doy memoria ilimitada al script.
Código PHP:
ini_set('memory_limit''-1'); 
Además de eso, por el momento he colocado que solo se lean los primeros 10 mil registros de cada archivo, y asi la carga se hace tres veces.

Cuando voy por la segunda o tecera carga de archivos, me aparece el error nuevamente. "Fatal error: Out of memory (allocated ######) (tried to allocate #### bytes)".

Lo que tengo que hacer para seguir subuiendo archivos es reiniciar apache.

La pregunta es: ¿Como podria limpiar la memoria automaticamente al terminar el bucle? y asi poder continuar con las cargas de los archivos.

Última edición por jmanuelgnt; 20/05/2013 a las 12:39 Razón: agregar detalles a la pregunta
  #2 (permalink)  
Antiguo 20/05/2013, 17:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: PHPExcel: Out of memory

Porqué no lo haces mediante una tarea programada que lea y procese cada vez determinada cantidad de registros (5mil o 10mil), al terminar, guardas la ID del último registro procesado en un archivo o tabla de tu base de datos. Fin de la ejecución y recursos liberados.

Al volver a ejecutarse, consultas esa ID y comienzas desde el siguiente registro.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: excel, lector, memoria, php.ini
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.