Foros del Web » Programando para Internet » PHP »

Agregar caracteres a un archivo desde una posicion especifica.

Estas en el tema de Agregar caracteres a un archivo desde una posicion especifica. en el foro de PHP en Foros del Web. Hola a todos. ¿Hay alguna forma de hacer append a un archivo existente cargado con contenido, pero que los datos no se agreguen al FINAL ...
  #1 (permalink)  
Antiguo 11/08/2005, 20:09
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
Agregar caracteres a un archivo desde una posicion especifica.

Hola a todos.

¿Hay alguna forma de hacer append a un archivo existente cargado con contenido, pero que los datos no se agreguen al FINAL sino por el medio del archivo?

Logre colocar un "ancla" (caracter "*") en un archivo de texto, detectarla con una funcion, y obtener la cantidad de caracteres (bytes) que hay antes del mismo. Ahora bien, ¿como agrego texto en ESE PUNTO ESPECIFICO si ya tengo texto delante del ancla y el texto a agregar no debe estar al final?


EJEMPLO:

(considerando que: $data = "Mas texto";)

"Este es el texto que tiene el archivo. *. Este es el ultimo texto."

Quiero que el contenido de $data se coloque a partir de " * ".

¿Es posible hacerlo?

Saludos.
  #2 (permalink)  
Antiguo 11/08/2005, 22:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. la lectura de archivos es secuencial .. así que o añades algo al final .. o tienes que leer todo el archivo de principio a fin sobre una variable para luego trabajar dicha variable con funciones de tratamiento de strings (cadenas).

De hecho .. puedes usar:
fopen() .. fgets() .. (www.php.net/fgets para ejemplos)

y de ahí como ya obtendras una $variable con el contenido de tu archivo como un string .. puedes aplicar una función de reemplazo de texto tipo:

str_replace() .. o bien alguna de expresiones regulares si tu patrón es más complejo que un "*" a sustituir.

También tienes sistemas de "motores" de gestión de "templates" que hacen ya todo eso por tí .. incluido hasta sistemas de control de caché .. Por ejemplo:

NokTemplate (facil y en castellano para que veas la base de todo este tema).
Smarty (De lo más completa y usada ...)

Todo depende de la complejidad de tu "patrón" a buscar y sustituir en tu texto original .. con las funciones básicas que te mencioné al comienzo te sobrará .. o si reamente es más complejo el tema o quieres darle más versatilidad .. usa un "motor" de gestión de "templates" ya implementado (o te lo diseñas tu .. pero no es necesario re-inventar la rueda en muchos casos..)

Un saludo,
  #3 (permalink)  
Antiguo 12/08/2005, 21:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
Hola, gracias por tu ayuda, lo solucione de esta forma:
($mensaje es lo q deseo agregar)

1. Capturo el texto hasta llegar a un "ancla" y guardo en $START
2. Sigo capturando desde "ancla" y guardo en $END
3. Creo $NEW_STR y le doy los valores=" $START + $mensaje + "ancla" + $end.
4. Repito el proceso y vuelvo a agregar $mensaje, tras el viejo $mensaje.

:)

El codigo lo tiro en el foro dsps. cuando termine mi aplicacion... es un sistema de comentarios de noticias tipo BLOG sin usar BD ni Files externos.
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:54.