Foros del Web » Programando para Internet » PHP »

Eliminar salto de linea

Estas en el tema de Eliminar salto de linea en el foro de PHP en Foros del Web. Nuevamente amigos a medida que avanzo me encuentro con mas problemas. En esta ocasión, tengo un archivo csv el cual contiene saltos de linea, he ...
  #1 (permalink)  
Antiguo 17/10/2012, 09:35
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Eliminar salto de linea

Nuevamente amigos a medida que avanzo me encuentro con mas problemas.

En esta ocasión, tengo un archivo csv el cual contiene saltos de linea, he buscado y buscado y no he podido sacar el salto de linea antes de desglosarlo en campos.

de no hacerlo me deja la pura escoba con que faltan una expresión


alguna ayuda
Gracias
  #2 (permalink)  
Antiguo 17/10/2012, 10:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Eliminar salto de linea

¿Hmmm pero que saltos queires eliminar? Porque el archivo se divide por lineas usando los saltos de línea. Si lo que deseas es eliminar los que estén en algún mensaje entonces solo es cuestion de usar str_replace y los saltos que pueden ser \r \n
Código PHP:
Ver original
  1. str_replace(array("\r", "\n"), '', $string);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/10/2012, 11:01
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: Eliminar salto de linea

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Hmmm pero que saltos queires eliminar? Porque el archivo se divide por lineas usando los saltos de línea. Si lo que deseas es eliminar los que estén en algún mensaje entonces solo es cuestion de usar str_replace y los saltos que pueden ser \r \n
Código PHP:
Ver original
  1. str_replace(array("\r", "\n"), '', $string);

Primero que todo gracias por responder.

Por ejemplo:
como csv esta separados por ";" entre medio de ambos hay unos salto de linea, mira pon atencion con lo que coloco mas abajo.

bla ";" bla ";" bla "salto_de_linea" bla "salto_de_linea" bla ";"

entonces que sucede, es que al estar esos salto de linea me desordena todo al querer extraer los campos con explode.
  #4 (permalink)  
Antiguo 17/10/2012, 13:48
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: Eliminar salto de linea

Encontre la solucion.

Para poder evitar el salto de linea, habia que tener en cuenta algo: antes la importacion a la BD ¿oracle) la realizaba mediante PHP_READER_CSV el cual detectaba el salto de linea.

La solucion para ello fue, descomponer uno por uno, registro tras registro el csv, para ello en el servidor cargo un temporal, el cual una vez utilizado se elimina automaticamente.

Pego pedazo de codigo acontinuacion por si alguno le sirve.

Código PHP:
Ver original
  1. $fichero = fopen($archivo,"r")or die("No se consigue el archivo");
  2.                     $r=0;
  3.                     while (!feof($fichero)){
  4.                         $campo = fgetcsv($fichero,4096,";");
  5.                         $hay = count($campo);
  6.                         $insert1 = "'$campo[0]',$campo[1],'$campo[2]','$campo[3]',$campo[4],'$campo[5]','$campo[6]','$campo[7]','$campo[8]','$campo[9]','$campo[10]','$campo[11]','$campo[12]','$campo[13]','$campo[14]','$campo[15]','$campo[16]','$campo[17]','$campo[18]','$campo[19]',$campo[20],$campo[21],$campo[22],$campo[23],'$campo[24]','$campo[25]','$campo[26]','$campo[27]','$campo[28]','$campo[29]','$campo[30]','$campo[31]','$campo[32]','$campo[33]','$campo[34]','$campo[35]',$campo[36],'$campo[37]' ";
  7.                         if($r==1){
  8.                             $c= "insert into derivaciones values ($insert, $anio, $numerosemana)";
  9.                        
  10.                             $stmt = OCIParse($conn,$c);
  11.                             OCIExecute($stmt);
  12.                             OCIFreeStatement($stmt);
  13.                         }
  14.                         else{
  15.                             $r=1;
  16.                         }
  17.                    
  18.                     }
  19. fclose($fichero);

Etiquetas: salto
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 08:51.