Pregunta

Estoy tratando de archivos CSV de análisis sintáctico subidos por el usuario a través de PHP, pero no está funcionando correctamente.

He subido varias CSV con el formato correcto y funcionó bien, sin embargo; Tengo muchos usuarios tratando de importar archivos CSV exportado de Excel y que están teniendo problemas. He comparado los archivos a la mina y se dio cuenta que los archivos de Excel todas las cotizaciones falta alrededor de las entradas. Aparte de eso, que son idénticos. Si abro y guardarlo con Open Office, sin realizar ningún cambio en absoluto que trabaja. Así que estoy bastante seguro de que está relacionado con las comillas.

Mi pregunta es; ¿cómo puedo leer estas CSV con formato incorrecto?

ACTUALIZACIÓN: Porque se ha encontrado

Esto es específico para la versión Mac de Excel. Los saltos de línea se manejan de manera diferente en los Mac por alguna razón arbitraria, por lo que antes de utilizar fgetcsv, usted debe hacer esto;

ini_set('auto_detect_line_endings',TRUE);
¿Fue útil?

Solución

Esto es específico para la versión Mac de Excel. Los saltos de línea se manejan de manera diferente en los Mac por alguna razón arbitraria, por lo que antes de utilizar fgetcsv, usted debe hacer esto;

ini_set('auto_detect_line_endings',TRUE);

Otros consejos

En cuanto a la página del manual de fgetcsv , su aspecto prototipo de esta manera:

array fgetcsv  ( resource $handle  [, int $length  
    [, string $delimiter = ','  [, string $enclosure = '"' 
    [, string $escape = '\\'  ]]]] )

El valor predeterminado para $enclosure (es decir. El cuarto parámetro) es una comilla doble.

¿Qué pasa si se intenta especificar que no desea que cualquier recinto cerrado, especificando una cadena vacía para que el cuarto parámetro?

(Por supuesto, esto podría romper lo que está trabajando ahora - lo que significa que tendría que hacer frente a dos casos distintos: los archivos con campos cerrados entre comillas dobles, y los archivos que no podían ser leídos por el primer caso)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top