¿Cómo importo archivos CSV usando zend framework? ¿Debería usar zend_file_transfer o hay alguna clase especial en la que tenga que investigar? Además, si uso zend_file_transfer, ¿hay algún validador especial para CSV?cómo importar CSV usando zend
Respuesta
usted no tiene que utilizar ninguna biblioteca Zend para importar archivos CSV, sólo puede utilizar las funciones nativas de PHP, echar un vistazo a fgetcsv
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
Advertencia lateral: 'fgetcsv()' no es realmente compatible con Unicode, por lo que es posible que necesite hacer malabares con las configuraciones regionales. – Darien
sí, sé cómo hacerlo usando fgetcsv, pero estoy específicamente interesado a través de zend. Gracias por su respuesta de todos modos. – JABD
Las funciones CSV incorporadas son defectuosas y con errores. Es una pesadilla intentar analizar CSV en PHP nativo. –
Actualmente no existe una manera de hacer esto con el Zend Marco de referencia. ¿Cómo puede uno estar seguro?
Por ejemplo, Zend_Translate apoya traducción de archivos CSV, pero si marca el código de la fuente del adaptador de red correspondiente (Zend_Translate_Adapter_Csv), se puede verificar que utiliza fgetcsv, y no una clase específica de Zend. Además, este adaptador CSV viene con la siguiente advertencia:
Nota: Tenga en cuenta que el adaptador tiene Csv problemas cuando sus archivos CSV son codificado de manera diferente a la configuración local de su entorno. Esto es debido a un error de PHP en sí que no será reparado antes de PHP 6.0 (http://bugs.php.net/bug.php?id=38471). Por lo tanto, debe tener en cuenta que el adaptador Csv debido a restricciones PHP no es consciente de la configuración regional.
que está relacionado con los problemas de la función fgetcsv.
Aquí hay una función que lee un archivo csv y devuelve una matriz de elementos que contienen los dos primeros valores de datos de columna.
Esta función podría leer un archivo de first_name, last_name por ejemplo.
function processFile ($filename) {
$rtn = array();
if (($handle = fopen($filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$item = array();
$item[] = $data[0];
$item[] = $data[1];
$rtn[] = $item;
}
}
return $rtn;
}
También puede usar SplFileObject
para leer archivos CSV.
Desde el manual de PHP:
<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
list($animal, $class, $legs) = $row;
printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>
SplFileObject no proporciona ninguna validación/error útil: pasar basura generará que $ row sea una matriz de un elemento donde el elemento es toda la línea. –
- 1. ¿Cómo importar CSV en sqlite usando RSqlite?
- 2. Importar archivo csv grande usando phpMyAdmin
- 3. Problema al importar archivos CSV usando FileHelpers
- 4. Oracle: Importar archivo CSV
- 5. Importar CSV a MySQL
- 6. Exportar/Importar CSV con PHPExcel
- 7. HeidiSQL importar csv campos vacíos
- 8. importar un CSV en phpmyadmin
- 9. MySQL importar datos CSV - ignorar algunas columnas csv
- 10. Mejores prácticas para importar archivos CSV grandes
- 11. UNIX Importar CSV grande en SQLite
- 12. ¿Cómo importar archivos de datos csv en scikit-learn?
- 13. ¿Cómo importar datos CSV/TSV a Couch DB?
- 14. Cómo importar archivos CSV a la tabla MySQL
- 15. ¿Cómo importar un archivo csv en MySQL workbench?
- 16. Importar proyecto usando pom.xml
- 17. importar datos CSV de servicio web en Excel
- 18. Usando genfromtxt para importar datos CSV con valores perdidos en numpy
- 19. La forma más rápida de importar archivos CSV en MATLAB
- 20. Importar CSV para actualizar sólo una columna en la tabla
- 21. Generar esquema de tabla inspeccionando Excel (CSV) e importar datos
- 22. Importar archivo CSV con tipos de datos mixtos
- 23. Importar un gran archivo csv a la base de datos mysql usando php
- 24. Mejor método para importar archivos csv o excel a SQL Server 2005 usando .net MVC view
- 25. ¿Ignorar comillas al importar un archivo CSV en PostgreSQL?
- 26. Cómo leer un archivo CSV usando iOS
- 27. ¿Cómo creo un archivo CSV usando Perl?
- 28. UnicodeDecodeError en Python 3 al importar un archivo CSV
- 29. importar grandes CSV en la base de datos MySQL
- 30. Manera eficiente de importar muchos archivos csv en PostgreSQL db
Por lo que yo sé, no hay ninguna clase de analizar CSV en Zend (a menos que usted está mirando para analizar un archivo de traducción con o Zend_Translate si estás usando Zend_Auth con archivos CSV). Es bastante sencillo con 'fgetcsv', así que supongo que no hay necesidad de una clase allí. – netcoder
@netcoder ¡De acuerdo! Muchas gracias – JABD