Foros del Web » Programando para Internet » PHP »

Retorno de carro en descarga

Estas en el tema de Retorno de carro en descarga en el foro de PHP en Foros del Web. Hola, tengo un problema con el retorno de carro al descargar un archivo. El archivo es un fichero php (con las cabeceras adecuadas) en el ...
  #1 (permalink)  
Antiguo 31/05/2006, 03:41
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Retorno de carro en descarga

Hola, tengo un problema con el retorno de carro al descargar un archivo.
El archivo es un fichero php (con las cabeceras adecuadas) en el que printo un listado. Inteno poner retornos de carro pero salen caracteres extraños.
Código PHP:
<?php
// cabeceras para descargar el listado en formato TXT
    
    
header("Content-type: text/plain; charset=utf-8\n");
    
header("Content-Disposition: attachment; filename=fichero.txt"); 

// listado

        
while( ... )
        {
           echo(
"\n\r");
           echo(
"datos: ... ");
        }
?>
  #2 (permalink)  
Antiguo 31/05/2006, 05:17
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 21 años, 1 mes
Puntos: 0
Yo he probado tu código y si que me ha echo los retornos de campo.

Mira:
http://www.calle17.net/archives/pruebas/creartxt.php

y el codigo:
Código PHP:
<?php 
// cabeceras para descargar el listado en formato TXT 
     
    
header("Content-type: text/plain; charset=utf-8\n"); 
    
header("Content-Disposition: attachment; filename=fichero.txt");  

// listado 

       
         
echo("\n\r"); 
         echo(
"Una linea. "); 
         echo(
"\n\r"); 
         echo(
"otra linea. "); 
         echo(
"\n\r"); 
         echo(
"otra linea. "); 
         echo(
"\n\r"); 
         echo(
"otra linea. "); 
         echo(
"\n\r"); 
         echo(
"datos: ... "); 
       
?>
Actualizado: Tienes razón. Pone caracteres raros, los tipicos cuadrados. En el explorador lo he visto bien, pero cuando me he descargado el txt no.
__________________
Calle17.net

edgargranados.es
  #3 (permalink)  
Antiguo 31/05/2006, 08:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Sigo con este problema. Cualquier otra alternativa será bien recibida.

Actualizado: Utilicé un programa llamado unix2dos para convertir los retorno de carro de linux a DOS y me funcionó. En el manual de PHP no pone nada de este programa. ¿Alguien sabe como puede programarse ese cambio? Gracias

Última edición por jerkan; 31/05/2006 a las 08:58
  #4 (permalink)  
Antiguo 31/05/2006, 09:21
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Solucionado! Dejo aquí la solución:
Código PHP:
$LF 0x0A;
$CR 0x0D;

$nl sprintf("%c%c",$CR,$LF); 
Utilizar la variable $nl (new line) como retorno de carro.
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 05:54.