Estoy usando PHP para importar datos desde un archivo CSV utilizando fgetcsv(), que produce una matriz para cada fila. Inicialmente, tuve el conjunto límite de caracteres en 1024, así:Asegúrese de que fgetcsv() lea toda la línea
while ($data = fgetcsv($fp, 1024)) {
// do stuff with the row
}
Sin embargo, CSV con más de 200 columnas superaron el límite de 1024 en muchas filas. Esto causó que la lectura de la línea se detuviera en medio de una fila, y luego la siguiente llamada a fgetcsv() comenzaría donde la anterior dejó, y así sucesivamente hasta que se alcanzó un EOL.
Desde entonces, he aumentado este límite a 4096, lo que debería ocuparme de la mayoría de los casos, pero me gustaría verificar que se haya leído toda la línea después de cada línea. ¿Cómo hago esto?
Estaba pensando en verificar el final del último elemento de la matriz para los caracteres de fin de línea (\ n, \ r, \ r \ n), pero no serían analizados por la llamada fgetcsv() ?
Además, me doy cuenta de que podría determinar mediante programación la línea más larga del archivo, pero esto podría ser una gran sobrecarga en archivos CSV realmente grandes. Me gustaría averiguar cómo asegurar que cada línea se lea en su totalidad sobre la marcha. –