Foros del Web » Programando para Internet » PHP »

generacion de un TXT desde un PHP

Estas en el tema de generacion de un TXT desde un PHP en el foro de PHP en Foros del Web. hola a todos mi nombree es Gerson Martinez soy nuevo en este tema de PHP y por esto necesito la colaboracion de uds. me gustaria ...
  #1 (permalink)  
Antiguo 30/04/2007, 00:27
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
generacion de un TXT desde un PHP

hola a todos mi nombree es Gerson Martinez soy nuevo en este tema de PHP y por esto necesito la colaboracion de uds. me gustaria que por favor me ayudaran a saber como hago lo siguiente:

lo que pasa es que yo necesito ingresar una serie de datos de una base de datos a un TXT ya existente. la serie de datos que se deben insertar ya esta . pero lo inserta en la ultima linea de ese TXT. mi pregunta es ..como se hace para insertar ese codigo generado en determinado lugar de ese archivo TXT.
en mi caso necesito que ese codigo se inserte dos lineas antes de las etiquetas finales.

archivo:
........................................
.........................................
....................................
<ellipse class="fil2 str4" cx="191.795" cy="103.873" rx="6.4746" ry="3.4662"/>
<text x="188.12" y="106.18" class="fil3 str3 fnt1">e b</text>
<polygon class="fil0 str0" points="146.763,138.819 151.839,131.211 152.17,128.616 151.995,125.564 150.164,128.747 150.033,132.54 "/>

//AQUI NECESITO QUE SE INSERTEN LAS LINEAS GENERADAS

</g>
</svg>
  #2 (permalink)  
Antiguo 30/04/2007, 02:10
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: importante: aayuda !!!! generacion de un TXT desde un PHP

Puedes utilizar la función file que te devuelve el contenido del fichero por filas en un array.
  #3 (permalink)  
Antiguo 30/04/2007, 02:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: importante: aayuda !!!! generacion de un TXT desde un PHP

Primero tendrás que abrir el fichero en cuestion y ajustar el "apuntador" a la posición que te interesa, lo que se entiende como "posicionar el cursor" en el punto donde quieras empezar a "escribir", por así decirlo.

Tendras que utilizar:
fopen(), para abrir el fichero
http://es2.php.net/manual/es/function.fopen.php

fwrite(), para escribir en el
http://es2.php.net/manual/es/function.fwrite.php

para manejar tu fichero correctamente.

Te paso otro enlace a las Funciones del Sistema de Archivos de php
http://es2.php.net/manual/es/ref.filesystem.php
  #4 (permalink)  
Antiguo 03/05/2007, 23:39
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Re: generacion de un TXT desde un PHP

hola rayder y jerkan gracias por su colaboracion es de mucha ayuda..estuve mirando y aplicando sus consejos...pero aun no me inserta en la linea que deseo. siempre me inserta en la ultima linea existente del archivo pues utilizo "a+", y pues estuve leyendo tambien y encontre unas funciones que creo que me podrian ayudar pero tampoco soy capaz de hacer que inserten en esa linea especifica..

las funciones son:

rewind
ftell
fseek

estas funciones me podrian ayudar...o se utilizan para cosas totalmente diferentes.?

y por favor si saben por favor les agradeseria un ejemplo...

muchsisisisimas gracias de antemano..

disculpen mi ignorancia.
  #5 (permalink)  
Antiguo 04/05/2007, 02:35
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: generacion de un TXT desde un PHP

Cita:
Iniciado por gersonmaba Ver Mensaje
..estuve mirando y aplicando sus consejos...pero aun no me inserta en la linea que deseo.
¿podrías postear el código dónde intentas insertar las líneas?
  #6 (permalink)  
Antiguo 04/05/2007, 04:49
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: generacion de un TXT desde un PHP

Bueno, así a voz de pronto, se me ocurre que sobreescribas el fichero de texto pero manteniendo parte de lo que tenias ya escrito.

Fijate en el código, ya que antes de sobreescribir genero una copia de seguridad.

Para probarlo, crea un fichero de texto con el nombre que quieras, yo lo he llamado "Fichero.txt", guardalo en el mismo directorio donde este el script.

Ejecuta el script llamando a la función con este mismo nombre de fichero.
Código PHP:
<?php

function Leerdatos_Fichero ($filename)
    {
    
$BytesDeLectura 1*(1024*1024); // Cantidad de bytes que serán leidos
    
$buffer '';
    
$handle fopen($filename'rb');
    
    if (
$handle === false)
     {
     return 
false;
     }
     
     while (!
feof($handle)) 
         {
        
$buffer fread($handle$BytesDeLectura);
        
        
///////////////////////////////////////////////////////////////////////////
        //Crear un copia de seguridad del contenido actual
        
$fp fopen("BK.".$filename"w+b"); 
         
//Escribir en el fichero
        
$Result fwrite($fp$buffer)or die("No se puede escribir en el fichero");
        
//Cerrar el fichero
        
fclose($fp);
        
///////////////////////////////////////////////////////////////////////////        
        
        
        //Extraemos las etiquetas del final
        
$TamCadena strlen($buffer) - 14;
        
$buffer substr($buffer0$TamCadena);
        
        
//Añadimos algo al fichero
        
$buffer .= "Estas líneas han sido añadidas a posterioridad.\r\n";
        
$buffer .= "Aparecerán por delante de las etiquetas.\r\n";
        
$buffer .= "Podrían haber sido añadidas desde una consula SQL.\r\n";
        
        
//Se vuelven a añadir las etiquetas extraidas anteriormente
        
$buffer .= "</g>\r\n";
        
$buffer .= "</svg>\r\n";
        
        
//Mostrar el contenido de $buffer en pantalla.
        //Esto no es necesario.
        
print $buffer;
        }
    
        
        
//Sobreescribir el fichero original
        
$fp fopen($filename"w+b"); 
         
//Escribir en el fichero
        
$Result fwrite($fp$buffer)or die("No se puede escribir en el fichero");
        
//Cerrar el fichero
        
fclose($fp);

    return 
fclose($handle);
    } 

//Llamar a la función
Leerdatos_Fichero("Fichero.txt");

?>
Pruebalo y ya nos comentarás.
Ten en cuenta que es sólo una idea de como hacerlo.
  #7 (permalink)  
Antiguo 09/05/2007, 20:55
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Re: generacion de un TXT desde un PHP

hola rayder, muchisisismas gracias por el codigo que me falicitaste. la veradd creo que si me sirve muchisimo obviamente toca realizarle modificaciones pequeñas.
pero tengo una pregunta.

la variable donde almacena la cantidad de bytes que seran leidos para que es..osea oprque haces esta operacion 1*(1024*1024);

y aca qyue queire decir este pedasito de codigo..

$TamCadena = strlen($buffer) - 14;
$buffer = substr($buffer, 0, $TamCadena);

mas bien..porque pones -14?

muchissiismas gracias por tu ayuda...gracias de verdad.
  #8 (permalink)  
Antiguo 10/05/2007, 02:58
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: generacion de un TXT desde un PHP

Antes de nada, pedir disculpas por la tardanza en responder, pero he estado muy liado de curro.

Código PHP:
operacion 1*(1024*1024); 
Es el tamaño del bufer que se crea en memoria para almacenar el contenido del fichero que lees.


La línea
Código PHP:
$TamCadena strlen($buffer) - 14
Te devuelve el número de caracteres que tienes almacenados en la variable $buffer y le resto 14, que son el número de caracteres de las etiquetas que eliminamos, ademas del retorno de carro.
Si quieres profundizar en la función strlen() http://es2.php.net/manual/es/function.strlen.php


la línea
Código PHP:
$buffer substr($buffer0$TamCadena); 
Lo que estoy haciendo es extraer de la variable $bufer, empezando en el caracter 0 (posición en la cadena), el número de caracteres obtenido con la línea anterior $TamCadena = strlen($buffer) - 14; a la que ya le he restado el número de caractes de las etiquetas que se están eliminando.
Lo mismo de antes http://es2.php.net/manual/es/function.substr.php


Si tienes alguna duda, ya sabes.
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 06:07.