Foros del Web » Programando para Internet » PHP »

Escribir en un archivo sin sobreescribir

Estas en el tema de Escribir en un archivo sin sobreescribir en el foro de PHP en Foros del Web. Que tal gente, oigan tengo una duda con PHP, lo que pasa es que quiero escribir en un archivo que ya existe. Pero quiero escribir ...
  #1 (permalink)  
Antiguo 13/05/2008, 11:13
Avatar de Elyeyo  
Fecha de Ingreso: mayo-2008
Mensajes: 22
Antigüedad: 16 años
Puntos: 0
Escribir en un archivo sin sobreescribir

Que tal gente, oigan tengo una duda con PHP, lo que pasa es que quiero escribir en un archivo que ya existe. Pero quiero escribir en la parte de enmedio del archivo.
Y el problema es que cuando intento escribir, lo que hace es ir borrando los caracteres posteriores que tengo escritos.
Como hago para que solo escriba sin sobreescribir mi codigo es el siguiente.

<?php

//Esto encuentra la bandera1 para poder escribir ahi
$archivo = '/Servidor/WEB/Portale2/LeftFrame.php';
$Pf = Fopen($archivo,'r+');
$contents = fread($Pf, filesize($archivo));
$pos = strpos($contents,"BANDERA1");
$pos = $pos-4;
$string = "\n ESTAS LINEAS AÑADO \n <!--BANDERA1--> \n";
fseek($Pf, $pos);
$write = fputs($Pf, $string);
print $pos;
fclose($Pf);
?>
  #2 (permalink)  
Antiguo 13/05/2008, 12:11
Avatar de Elyeyo  
Fecha de Ingreso: mayo-2008
Mensajes: 22
Antigüedad: 16 años
Puntos: 0
De acuerdo Re: Escribir en un archivo sin sobreescribir

Me respondo yo mismo.
No encontré alguna forma de escribirlo sin comerse los caracteres por lo que decidí leer la otra parte del archivo con la función stream_get_contents.
La cual le indiqué desde donde leerlo y asi escribir las dos cadenas que generé

Espero le sirva a alguien

este es el código como quedó

<?php

//Esto encuentra la bandera1 para poder escribir ahi
$archivo = '/Servidor/WEB/Portale2/LeftFrame.php';
$Pf = Fopen($archivo,'r+');
$contents = fread($Pf, filesize($archivo));
$pos = strpos($contents,"BANDERA1");
$pos = $pos-4;
$resto = stream_get_contents($Pf,-1,$pos);
$string = "\n AÑADIDO DESDE AQUI CHEKALO BIEN \n <!--BANDERA1--> \n";
fseek($Pf, $pos);
$write = fputs($Pf, $string.$resto);
print $pos;
fclose($Pf);
?>
  #3 (permalink)  
Antiguo 13/05/2008, 12:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Escribir en un archivo sin sobreescribir

igual... y tambien solo son los modos.... a+ (agrega al final)
  #4 (permalink)  
Antiguo 13/05/2008, 14:01
Avatar de Elyeyo  
Fecha de Ingreso: mayo-2008
Mensajes: 22
Antigüedad: 16 años
Puntos: 0
Re: Escribir en un archivo sin sobreescribir

Fijate que lo intenté. Cambiandole el modo a "a". Y a+
Pero no me funcionó no sé si lo hice mal pero por más que le decía al puntero dónde escribir, (esto lo hacia con el seek), pues siempre lo escribia al final del archivo tu crees?
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 14:24.