Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/12/2010, 15:23
Avatar de SirDuque
SirDuque
 
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Verificar estructura de CSV. ¿se podra?.

Mira areslepra, encontre esto que te parece??
http://www.php.net/manual/es/function.fputcsv.php

por lo jugue un poco vi esto:

Este es el ejemplo del link:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $lista = array (
  4.     array('aaa', 'bbb', 'ccc', 'dddd'),
  5.     array('123', '456', '789'),
  6.     array('"aaa"', '"bbb"')
  7. );
  8.  
  9. $fp = fopen('archivo.csv', 'w');
  10.  
  11. foreach ($lista as $campos) {
  12.     fputcsv($fp, $campos);
  13. }
  14.  
  15. fclose($fp);
  16. ?>
y te crea un archivo en la carpeta del php. llamado archivo.txt que tiene este formato:

Código:
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
si a este codigo le agrego esto:

<?php

$lista = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);

$fp = fopen('archivo.csv', 'w');

foreach ($lista as $campos) {
fputcsv($fp, $campos,';');
}

fclose($fp);
?>


me imprime esto:

Código:
aaa;bbb;ccc;dddd
123;456;789
"""aaa""";"""bbb"""
que me viene barbaro para continuar mi codigo.

El problema viene al implementarlo....
Ya que en el ejemplo aparece la variable $campos y no tengo ni idea de donde viene...
ademas el archivo CSV lo estoy manipulando recibido del Form no lo guardo en mi servidor.

subo el codigo hasta ahora:

Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $campa&#241;a=$_POST['campa'];
  4. $opera=$_SESSION['s_nombre'];
  5. $file=$_FILES['userfile'];
  6.  
  7. if ($campa&#241;a==NULL or $file==NULL)
  8. {
  9. echo "Por favor verifique completar todos los campos";
  10. }else{
  11. if ($file['type'] == 'application/vnd.ms-excel'){
  12.  
  13. echo $file['name']."<br>";
  14. echo $file['type'];
  15.  
  16. $fpname=$file['tmp_name'];
  17. $row = 0;  
  18. $fp = fopen ("$fpname","r");
  19. while ($data = fgetcsv ($fp, 1000, ";"))  
  20. {  
  21. $num = count ($data);  
  22. print " <br>";  
  23. $row++;  
  24. echo "$row- ".$data[0].$data[1];  
  25. }  
  26. fclose ($fp);
  27.  
  28. }else{echo "error";}}
  29.  
  30. ?>

el cual funciona barbaro....
ahora la idea es incluir
fputcsv()

fputcsv($fp, $campos, ";");

me imagino que en $fp tengo que agregar escritura -rw no?



NOTA: A tener bien claro que los CSV solo tiene dos campos.
__________________
Mono programando!
twitter.com/eguimariano