Foros del Web » Programando para Internet » PHP »

Crear archivo txt con saltos de linea

Estas en el tema de Crear archivo txt con saltos de linea en el foro de PHP en Foros del Web. Hola, Estoy liado con la creación de un archivo de texto, el problema es que cuando se abre en block de notas toda la información ...
  #1 (permalink)  
Antiguo 22/05/2012, 09:35
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Crear archivo txt con saltos de linea

Hola,

Estoy liado con la creación de un archivo de texto, el problema es que cuando se abre en block de notas toda la información aparece de corrido sin los saltos de linea.

Aca pongo como creo el archivo.

Código PHP:
Ver original
  1. if($fp = fopen('miarchivo.txt',"wb"))
  2. {
  3.     foreach($fields as $item)
  4.     {
  5.         $string = implode('|', $item) . "\r\n";
  6.         fwrite($fp, utf8_decode($string));
  7.     }
  8.     fclose($fp);
  9. }

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #2 (permalink)  
Antiguo 22/05/2012, 09:38
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Crear archivo txt con saltos de linea

Código PHP:
Ver original
  1. if($fp = fopen('miarchivo.txt',"wb"))
  2. {
  3.     foreach($fields as $item)
  4.     {
  5.         $string = implode('|', $item) . PHP_EOL;
  6.         fwrite($fp, utf8_decode($string));
  7.     }
  8.     fclose($fp);
  9. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 22/05/2012, 14:45
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Crear archivo txt con saltos de linea

Es raro, sigo viendo el block todo en una solalinea en otros editores, como note++, si se ve bien y bueno asi ya me sirve.

Ahora solo tengo que dejar el archivo en utf-8, como me sale ahorita es ANSI as UTF-8, alguien sabe como cambiar la codificación a solo UTF-8.

Aca dejo mi código:

Código PHP:
Ver original
  1. if($fp = fopen('miarchivo.txt',"wb"))
  2. {
  3.     while($item = current($fields))
  4.     {
  5.         $string = utf8_encode(implode('|', $item));
  6.         if(next($fields))
  7.         {
  8.             $string .= PHP_EOL;
  9.         }
  10.         fwrite($fp, $string);
  11.     }
  12. }

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #4 (permalink)  
Antiguo 22/05/2012, 16:24
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Crear archivo txt con saltos de linea

Para crear archivos bajo UTF-8 la unica forma que eh encontrado es agregando el BOM de UTF-8 al archivo...

Código PHP:
Ver original
  1. if($fp = fopen('miarchivo.txt',"wb"))
  2. {
  3.     //agregamos la "cabecera" BOM...
  4.     fwrite($fp,'\xEF\xBB\xBF');
  5.     while($item = current($fields))
  6.     {
  7.         $string = utf8_encode(implode('|', $item));
  8.         if(next($fields))
  9.         {
  10.             $string .= PHP_EOL;
  11.         }
  12.         fwrite($fp, $string);
  13.     }
  14. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 24/05/2012, 16:40
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Crear archivo txt con saltos de linea

Hola de nuevo, sigo con el hilo del tema para no abrir un nuevo post ya que va en relación.

Nemutagk ya puse el BOM y solucionado el tema del UTF-8, pero ahora resulta que el archivo generado queda como UNIX y lo necesito en DOS/Windows ya intente con PHP_EOL y con "\r\n" pero no lo logro.

Alguien sabrá como genero un archivo DOS/Windows, les dejo mi script con la ultima version.

Código PHP:
Ver original
  1. if($fp = fopen('miarchivo.txt',"wb"))
  2. {
  3.      // Agregamos la "cabecera" BOM...
  4.      fwrite($fp, "\xEF\xBB\xBF");
  5.     while($item = current($fields))
  6.     {
  7.         $string = implode('|', $item);
  8.         if(next($fields))
  9.         {
  10.             //$string .= PHP_EOL;
  11.             $string .= "\r\n";
  12.         }
  13.         fwrite($fp, $string);
  14.     }
  15. }
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #6 (permalink)  
Antiguo 24/05/2012, 17:49
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Crear archivo txt con saltos de linea

Por fin lo logre, en el anterior script la cabezera BOM hacia que el archivo fuera Unix pero si lo quitaba volvia el archivo ANSI as UTF-8.

Cambie el script usando ahora file_put_contents para generar el archivo, dejo la versión final por si alguien algún día tiene el mismo problema.

Código PHP:
Ver original
  1. $file_name = 'miarchivo.txt';
  2. $string = NULL;
  3. while($item = current($fields))
  4. {
  5.     $string .= implode('|', $item);
  6.     if(next($fields))
  7.     {
  8.         $string .= "\r\n";
  9.     }
  10. }
  11. file_put_contents($file_name, "\xEF\xBB\xBF" . $string);
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #7 (permalink)  
Antiguo 24/05/2012, 18:17
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Crear archivo txt con saltos de linea

yo solo agrego \n (sin el \r) y listo.... no lo probaste asi? a mi me funciona asi
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #8 (permalink)  
Antiguo 24/05/2012, 19:22
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Crear archivo txt con saltos de linea

No, los line ending son asi:

\r => Mac
\n => Unix
\r\n => DOS/Windows

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana

Etiquetas: bom, dos\windows, ending, line, saltos, txt, unix, utf-8
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 18:09.