Parece que el delimitador del archivo csv editado y guardado por OpenOffice Excel es ";" mientras que Microsoft Office Excel es "," ¿cómo debería escribir un programa para analizar el archivo csv sin importar qué delimitador use?¿cómo debo analizar el archivo csv en php cuando varía el delimitador?
Respuesta
fgetcsv()
le permite especificar el delimitador como el tercer argumento.
En cuanto a la detección automática, hay algunas respuestas interesantes para this question.
Utilice el método SplFileObject :: getCsvControl. uso Ejemplo:
<?php
$csvFileObject = new SplFileObject($_FILES["csv"]["tmp_name"]);
list($delimiter, $enclosure) = $csvFileObject->getCsvControl();
$lines = fopen($_FILES["csv"]["tmp_name"], 'r');
if($lines) {
while (($line = fgetcsv($lines, 4096, $delimiter, $enclosure)) !== false) {
//do something
}
}
Referencia: http://php.net/manual/en/splfileobject.getcsvcontrol.php
Este método no funciona correctamente en 5.5 (también en versiones anteriores). –
estoy usando esta función en una de mis aplicaciones para determinar qué separador se utiliza:
function get_separator($csvstring, $fallback = ';') {
$seps = array(';',',','|',"\t");
$max = 0;
$separator = false;
foreach($seps as $sep){
$count = substr_count($csvstring, $sep);
if($count > $max){
$separator = $sep;
$max = $count;
}
}
if($separator) return $separator;
return $fallback;
}
Básicamente comprueba que el separador se produce en más y lo devuelve. Funciona sin problemas desde hace unos dos años
- 1. Expresión regular para analizar CSV en PHP
- 2. Cómo analizar el archivo CSV en la aplicación de Android?
- 3. Cómo analizar un archivo CSV en Bash?
- 4. PHP Buscar cadena en el archivo CSV
- 5. ¿Cómo debo detectar qué delimitador se usa en un archivo de texto?
- 6. ¿Cómo descargar y analizar un archivo csv en Racket?
- 7. Cómo escribir en el archivo CSV correctamente
- 8. ¿Cómo leer el archivo csv en android?
- 9. División de un archivo en el delimitador
- 10. Crear archivo CSV usando PHP y guardarlo en el directorio
- 11. Cómo analizar el archivo XML en RapidXML
- 12. de Split usando delimitador delimitador excepto cuando se escapó
- 13. Cómo especificar el delimitador al importar archivos CSV a través de OLEDB en C#
- 14. Cómo analizar un archivo .plist con php?
- 15. Cómo analizar el archivo INI con Boost
- 16. Cargar y analizar el archivo csv con el motor de la aplicación google
- 17. Cargar y analizar el archivo csv con "nueva línea universal" en python en Google App Engine
- 18. Lectura del archivo .csv en php
- 19. Descargar el archivo CSV usando "AJAX"
- 20. ¿Cómo serializar el objeto al archivo CSV?
- 21. Ruby: no se puede analizar el archivo Excel exportado como CSV en OS X
- 22. PHP - analizar un archivo txt
- 23. archivos CSV de lectura en donde numpy delimitador es ""
- 24. ¿Escribir en el archivo CSV y exportarlo?
- 25. analizar el archivo csv separado por comas con comillas en python
- 26. Perl, cómo analizar el archivo XML, xpath
- 27. analizar el archivo jar programmatically
- 28. Delphi TQuery guardar en el archivo csv
- 29. Cómo extraer datos de archivo CSV en PHP
- 30. Dividir archivo basado en el delimitador de cadenas en bash.how?
Creo que Microsoft se opondría a la dilución de marca registrada involucrada en el uso de 'Excel' para describir la hoja de cálculo de Openoffice. – pavium