Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2013, 05:02
Zeronomi
 
Fecha de Ingreso: enero-2013
Mensajes: 30
Antigüedad: 11 años, 10 meses
Puntos: 0
Exclamación Molesto espacio en txt exportado

Hola a todos,

tengo entre manos un programa que coge valores de un kml (un archivo exportado que almacena polígonos dibujados en Google Earth), y los saca en .txt

El problema es que hay un salto de línea odioso que me está j*diendo la estructura del archivo txt.

El código de php al completo es este. Sólo pongo el archivo que gestiona el archivo subido, que es un formulario Html sin más misterio.

Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Uploaded</title>
</head>

<?php
    
//Subir archivo//////////////////////////////////////////////
    
    //Imprimir datos del archivo
    
$nombre "Coordenadas_".date("dmy_His").".kml";
    echo 
"Nombre Temporal: ".$_FILES['archivo']['tmp_name']."<br>";
    echo 
"Nombre del Archivo: "$_FILES['archivo']['name']."<br>";
    echo 
"Tipo de Archivo: ".$_FILES['archivo']['type']."<br>";
    echo 
"Tamaño: ".number_format(($_FILES['archivo']['size']/1024),2)." KB<br>";
    echo 
"Nombre del archivo: ".$nombre."<br><br>";
    
    
//Mover el archivo al destino
    
$destino '/Applications/XAMPP/xamppfiles/htdocs/Conversor/archivos/'.$nombre;
    
$origen $_FILES['archivo']['tmp_name'];
    
move_uploaded_file($origen,$destino);
    
    
//Fin subir archivo/////////////////////////////////////////
    
    //Leer KML//////////////////////////////////////////////////
    
    
if($sx = @simplexml_load_file($destino)){
            
$salida "";
            
$ruta $sx->Document->Placemark->Polygon->outerBoundaryIs->LinearRing;
            
$coord $ruta->coordinates;
            
$coord str_replace(",0",",",$coord);
            
//echo $coord;
            
            
            
$listaCoord explode(",",$coord);
            
//echo $listaCoord[0].";";
            //echo $listaCoord[1]."<br>";
            
            
$interruptor true;
            
$final "Point_id;X;Y"."<br>";
            
$contador 1;
            
            for(
$i=0;$i<count($listaCoord);$i++){
                    if(
$interruptor){
                        
$final $final.$contador.";".strval($listaCoord[$i]).";".strval($listaCoord[$i+1])."<br>";
                        
$i++;
                        
$contador++;
                        
$interruptor false;
                        }
                    else{
                        
$final $final.$contador.";".strval($listaCoord[$i]).";".strval($listaCoord[$i+1])."<br>";
                        
$i++;
                        
$contador++;
                        
$interruptor true;
                        }
                }    
            echo 
$final;
            
$final str_replace("<br>","\n",str_replace("; ",";",$final));
        }
    else{
            echo 
"<b>Error al leer el archivo</b>";
        }
        
    
//Fin Leer KML//////////////////////////////////////////////
    
    
    //Crear txt/////////////////////////////////////////////////
    
    
$archivo "archivos/".str_replace(".kml",".txt",$nombre);
    
$fch fopen($archivo"w");
    
fwrite($fch$final);
    
fclose($fch);
    
    
//Fin crear txt/////////////////////////////////////////////
    
?>

<body>
    <br />
    <br />
    <a href="Formulario de subida.php">Volver</a>
</body>
</html>
Dejo una captura de pantalla de cómo aparece en el archivo txt y cómo aparece en la web:



De lo que quiero deshacerme es del salto de línea y las tabulaciones que hay entre el 1; y las coordenadas


Creo fielmente que el error está en estas líneas:

Código PHP:
$interruptor true;
$final "Point_id;X;Y"."<br>";
$contador 1;
            
for(
$i=0;$i<count($listaCoord);$i++){
    if(
$interruptor){
        
$final $final.$contador.";".strval($listaCoord[$i]).";".strval($listaCoord[$i+1])."<br>";
        
$i++;
        
$contador++;
        
$interruptor false;
    }
    else{
        
$final $final.$contador.";".strval($listaCoord[$i]).";".strval($listaCoord[$i+1])."<br>";
        
$i++;
        
$contador++;
        
$interruptor true;
    }
}    
echo 
$final;
            
$final str_replace("<br>","\n",str_replace("; ",";",$final)); 
__________________
Hello World!