Foros del Web » Programando para Internet » PHP »

Modificar el interior de un archivo con PHP

Estas en el tema de Modificar el interior de un archivo con PHP en el foro de PHP en Foros del Web. Hola, Me ha surgido una duda para algo que estoy haciendo. Os pongo un ejemplo. Por ejemplo, yo quiero que en el archivo header.php haya ...
  #1 (permalink)  
Antiguo 28/03/2012, 11:26
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Modificar el interior de un archivo con PHP

Hola,

Me ha surgido una duda para algo que estoy haciendo. Os pongo un ejemplo.

Por ejemplo, yo quiero que en el archivo header.php haya un código que inserte una imagen (un simple img src). Bien, lo que quiero es, mediante el panel de administración (propio que estoy haciendo) pueda modificarle la ruta sin tener que guardarla en una base de datos.

La cosa es que no sólo lo quiero hacer con el logo, sino con varias cosas como las meta de la web, el titulo de la web, etc.

¿Es con la función fopen de php? ¿Hay alguna otra manera de hacerlo o hay que abrir el archivo y modificar TODAS las partes cada vez que se guardan dichos datos?

Gracias
__________________
@JaimeMSE - ¡Sígueme!
  #2 (permalink)  
Antiguo 28/03/2012, 11:55
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Modificar el interior de un archivo con PHP

Obedeciendo lo que dices yo simplemente guardaría un archivo, de formato .dat por ejemplo, donde almacenaría una representación del formato JSON (json_encode()), al momento de utilizarla simplemente decodifico el formato y trabajo con sus respectivos indices.

Para que te hagas mejor a la idea:

Código:
{"titulo": "Sitio Personal de", "logo": "logo.jpg"}'
Y bien esa cadena en el archivo previamente creado, es la que abriría, leería y decodificaría (json_decode()) con fopen (en el modo a+) y fwrite, como ya habías mencionado.

Documentación:

json_encode(): http://www.php.net/manual/es/function.json-encode.php
json_decode(): http://www.php.net/manual/es/function.json-decode.php

O bien manejas constantes de clases para este proceso, pero si tu idea es crear un simple archivo, te recomendaría JSON para el formato.

Si modificas por ejemplo el titulo, sobreescribes el índice titulo, codificas y almacenas nuevamente.

Me comentas qué tal te fue.

Buena suerte.
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.
  #3 (permalink)  
Antiguo 28/03/2012, 13:29
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Modificar el interior de un archivo con PHP

Cita:
Iniciado por JairLizcano Ver Mensaje
Obedeciendo lo que dices yo simplemente guardaría un archivo, de formato .dat por ejemplo, donde almacenaría una representación del formato JSON (json_encode()), al momento de utilizarla simplemente decodifico el formato y trabajo con sus respectivos indices.

Para que te hagas mejor a la idea:

Código:
{"titulo": "Sitio Personal de", "logo": "logo.jpg"}'
Y bien esa cadena en el archivo previamente creado, es la que abriría, leería y decodificaría (json_decode()) con fopen (en el modo a+) y fwrite, como ya habías mencionado.

Documentación:

json_encode(): http://www.php.net/manual/es/function.json-encode.php
json_decode(): http://www.php.net/manual/es/function.json-decode.php

O bien manejas constantes de clases para este proceso, pero si tu idea es crear un simple archivo, te recomendaría JSON para el formato.

Si modificas por ejemplo el titulo, sobreescribes el índice titulo, codificas y almacenas nuevamente.

Me comentas qué tal te fue.

Buena suerte.
Hola, gracias por responder. Miraré tu idea a ver que tal se me da, ya que la desconocía por completo.

Y una duda, no es más fácil por ejemplo:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Texto a cambiar</title>
  4. </head>
  5. <body>
  6. Cuerpo de la página
  7.  
  8. Texto a cambiar
  9.  
  10. Más contenido
  11.  
  12. Texto a cambiar
  13. </body>
  14. </html>

Que, con el caso anterior, con fopen y tal, abrir el archivo y modificar donde pone texto a cambiar, texto a cambiar 2, etc?

La duda es que no sé como hacerlo. En vez de usar lo que tú dices, usar algo más fácil como captar X texto de un archivo y mostrarlo en un formulario, y guardarlo de nuevo cuando se envíe.

Gracias.
__________________
@JaimeMSE - ¡Sígueme!
  #4 (permalink)  
Antiguo 28/03/2012, 13:39
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Modificar el interior de un archivo con PHP

Cita:
La duda es que no sé como hacerlo. En vez de usar lo que tú dices, usar algo más fácil como captar X texto de un archivo y mostrarlo en un formulario, y guardarlo de nuevo cuando se envíe.
Puedes captar el texto del índice titulo, por ejemplo, del formato JSON, mostrarlo en un input de tipo text y esperar a ver qué modifica el usuario, pero a fin de cuentas sobreescribirás el archivo.

O no me he hecho entender o bien no te he entendido, pero si buscas algo más fácil, no se me vendrían más ideas a la cabeza sin tener en cuenta la base de datos...

Con respecto a tu solución, personalmente no me gustaría almacenar completamente la cabecera de la página. Piensa que con el formato que te indico puedes trabajar el array en cualquier parte que indiques el índice después de decodificarlo, todo ello y aún así de forma fácil. Ten en cuenta por último, que dicho formato es soportado por n lenguajes de desarrollo.

Buena suerte.
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.
  #5 (permalink)  
Antiguo 28/03/2012, 13:41
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Modificar el interior de un archivo con PHP

Cita:
Iniciado por JairLizcano Ver Mensaje
Puedes captar el texto del índice titulo, por ejemplo, del formato JSON, mostrarlo en un input de tipo text y esperar a ver qué modifica el usuario, pero a fin de cuentas sobreescribirás el archivo.

O no me he hecho entender o bien no te he entendido, pero si buscas algo más fácil, no se me vendrían más ideas a la cabeza sin tener en cuenta la base de datos...

Con respecto a tu solución, personalmente no me gustaría almacenar completamente la cabecera de la página. Piensa que con el formato que te indico puedes trabajar el array en cualquier parte que indiques el índice después de decodificarlo, todo ello y aún así de forma fácil. Ten en cuenta por último, que dicho formato es soportado por n lenguajes de desarrollo.

Buena suerte.
Gracias por responder tan rápido.

La cosa es que voy a guardar muchas cosas para cambiar, y hacerlo en forma de arrays sería muy lioso, demasiado.

Creo que al final optaré por usar base de datos.

Gracias nuevamente.
__________________
@JaimeMSE - ¡Sígueme!
  #6 (permalink)  
Antiguo 28/03/2012, 15:18
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Modificar el interior de un archivo con PHP

Me parece que lo que buscas es un EDITOR rapido en la misma WEB?...
si es eso lo que buscas tendrias que:

en el primer form -> indicar la ubicacion del archivo.
en el segundo form por PHP leer el archivo con file() e imprimir dentro de un textarea (html).
esto te traira un HTML con un <textarea> y tu codigo, lo editas y lo guardas, con fopen().

Creo que esa es la idea, pero a tener en cuenta la codigicacion UTF8 ;).
__________________
Mono programando!
twitter.com/eguimariano
  #7 (permalink)  
Antiguo 29/03/2012, 00:31
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Modificar el interior de un archivo con PHP

Cita:
Iniciado por SirDuque Ver Mensaje
Me parece que lo que buscas es un EDITOR rapido en la misma WEB?...
si es eso lo que buscas tendrias que:

en el primer form -> indicar la ubicacion del archivo.
en el segundo form por PHP leer el archivo con file() e imprimir dentro de un textarea (html).
esto te traira un HTML con un <textarea> y tu codigo, lo editas y lo guardas, con fopen().

Creo que esa es la idea, pero a tener en cuenta la codigicacion UTF8 ;).
Hola,

Más o menos es así, lo que en vez de traerme el HTML sólo, traería también el PHP y no todo el código, sino, un textarea = una porción de código y así.

¿Sabes como hacerlo?

Gracias
__________________
@JaimeMSE - ¡Sígueme!
  #8 (permalink)  
Antiguo 29/03/2012, 00:43
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Modificar el interior de un archivo con PHP

Ya siendo todo más claro diré por último: si lees un determinado archivo, sí o sí, siempre cargarás todo su contenido, no hay salida, al menos ello aplica a la teoría de grabados de disco que conozco.

A no ser también que hagas grabados en disco independientes para cada sección del sitio que podrías modificar a través del panel que mencionas, por ejemplo.
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.
  #9 (permalink)  
Antiguo 29/03/2012, 05:44
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Modificar el interior de un archivo con PHP

Vale,

¿Y hay alguna manera de seleccionar X parte del archivo y mostrarlo por ejemplo en un input?
Gracias :)
__________________
@JaimeMSE - ¡Sígueme!
  #10 (permalink)  
Antiguo 29/03/2012, 10:40
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Exclamación Respuesta: Modificar el interior de un archivo con PHP

Claro, de por sí puedes manipular el contenido del archivo como un string cualquiera (pero claro está, primero debes leerlo en absoluto), sólo es que definas muy bien la estructura de tu archivo para saber y hacer referencia de dónde a dónde tomar, yo haría lo siguiente, por ejemplo:

Código:
      <html>
     <!-- Division -->
     <head>
          <?php echo('Soy un título.');?>
     </head>
     <!-- Division -->
     <body>
         <p>
             Soy un párrafo
         </p>
     </body>

     [...]
Esa sería por ejemplo la estructura de mi archivo al momento de guardarlo y lo llamaría de esta forma:

Código PHP:
$seccion explode('<!-- Division -->'$contenido);

# Sección de cabecera:
echo($seccion[0]);

# Sección del cuerpo
echo($seccion[1]); 
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.
  #11 (permalink)  
Antiguo 29/03/2012, 14:12
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Modificar el interior de un archivo con PHP

Por que no te das una vuelta por ak y despues nos contas.

OJO que el que sepa la ubicacion de ese archivo, tal como esta hoy, puede traerte dolores de cabeza!

http://blog.c-inteligente.com.ar/editor_online_PHP.php
__________________
Mono programando!
twitter.com/eguimariano

Última edición por SirDuque; 29/03/2012 a las 14:26

Etiquetas: fopen
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 23:21.