Foros del Web » Programando para Internet » PHP »

Leer CSV

Estas en el tema de Leer CSV en el foro de PHP en Foros del Web. Estimado tengo el siguiente problema, al leer un csv ";" con la funcion fgetcsv esta me borra el primer caracter de un dato. solo me ...
  #1 (permalink)  
Antiguo 09/11/2011, 07:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Leer CSV

Estimado tengo el siguiente problema,

al leer un csv ";" con la funcion fgetcsv esta me borra el primer caracter de un dato.
solo me pasa con las Ñ

por ejemplo el dato que viene en ÑOÑO y cuando lo guardo en la BD me lo deja como OÑO.

Alguien sabe a que se pueda deber? y cual sería la solución?

Saludos,
  #2 (permalink)  
Antiguo 09/11/2011, 08:12
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Leer CSV

fijate aca http://www.forosdelweb.com/f86/impor...-las-n-868834/
  #3 (permalink)  
Antiguo 09/11/2011, 08:48
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: Leer CSV

Mi problema no va por ahi, ya si me guarda las Ñ en las base de datos, pero siempre que no sea la primera letra de la palabra.
Y creo que el problema lo tiene la funcion fgetcsv ya que es ahi cuando me elimina la primera Ñ, la segunda me devuelve bien.
  #4 (permalink)  
Antiguo 09/11/2011, 08:57
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Leer CSV

yo haria que cuando la primer letra es ñ le agregue un espacio adelante.

o proba con dos ñ
ññoño
que te borre la primera,

nose, como truco
  #5 (permalink)  
Antiguo 09/11/2011, 14:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Leer CSV

Yo no tuve problemas, hice esta prueba
Código PHP:
Ver original
  1. <?php
  2. $row = 1;
  3. if (($handle = fopen("test.csv", "r")) !== FALSE) {
  4.     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  5.         for ($c=0; $c < count($data); $c++) {
  6.             echo $data[$c] . "<br />\n";
  7.         }
  8.     }
  9.     fclose($handle);
  10. }

test.csv
Código CSV:
Ver original
  1. ÑOÑO,áéíóú
  2. áéíóú,ÑOÑO
Debes verificar la codificación de los archivos, la codificación de la base de datos, si tienes una diferente, cambiala a que sea como están la mayoría o viceversa. Pero todas deben ver la misma codificación. Si es utf-8 pues todas deben ser utf-8, si es iso-8859-1 o ANSI, etc.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 14/11/2011, 13:42
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: Leer CSV

abimaelrc realice la prueba, y fuera de mi sistema me funciona bien lo que tu dices, inclusive leyendo el archivo en cuestion.

Pero cuando lo lei desde dentro del sistema, me sucede eso, me borra el primer caracter de la palabra, ya sea Ñ ó una letra con tilde...

me tiene complicada esa situacion, porque nisiquiera me devuelve la palabra entera :(
  #7 (permalink)  
Antiguo 14/11/2011, 14:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Leer CSV

¿Haz verificado que tu script dentro de tu sistema tenga la codificación de caracteres correcta? Esta tiene que ser el mismo del archivo CSV que estas subiendo y la misma que en tu BDD.

Saludos.
  #8 (permalink)  
Antiguo 14/11/2011, 14:20
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: Leer CSV

En la BD se inserta bien las ñ no hay problema en eso cuando la asigno yo o cuando la ñ viene entremedio de la palabra...

El problema es que cuando leo el dato del archivo ya no viene la primera letra de mi palabra. por ejemplo abro el archivo y dice "ÑOÑO"
pero cuando rescato el dato con php me devuelvo "OÑO"...

como veo la codificación del archivo?
  #9 (permalink)  
Antiguo 14/11/2011, 15:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Leer CSV

Puedes usar notepad++, este te muestra la codificación del archivo.
  #10 (permalink)  
Antiguo 17/11/2011, 07:30
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 13 años
Puntos: 3
Respuesta: Leer CSV

Hola GatorV

te cuento, abri el archivo CSV con un block de nota y cuando le di "guardar como" me mostro que la codificacion era ANSI, la cambie por UTF-8, pero tampoco me funciona.....
Hice lo que recomendaban en algunos temas del foro ... puse lo siguiente..

despues de abrir la conexion a la bd puse esto mysql_query("SET NAMES 'UTF8'");
en html puse esto:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >

mi archivo php lo guarde como UTF-8 (es el archivo que lee el csv)

probe con muchas combinaciones pero no me lee la primer Ñ o LETRAS CON TILDE de mi palabra ....

Alguna idea que me pueda ayudar :)

Saludos!
  #11 (permalink)  
Antiguo 01/10/2015, 07:43
 
Fecha de Ingreso: octubre-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Leer CSV

Hola, tengo el mismo problema, lo llegaste a solucionar?

Etiquetas: csv
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.