Foros del Web » Programando para Internet » PHP »

Escribir en fichero.php pero solo en el valor de la variable

Estas en el tema de Escribir en fichero.php pero solo en el valor de la variable en el foro de PHP en Foros del Web. Tengo un fichero.php de configuracion de mi sistema, donde guardo entre otras cosas la conexion a mi DB y los datos del usuario principal. Sin ...
  #1 (permalink)  
Antiguo 23/11/2005, 15:56
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años, 6 meses
Puntos: 0
Escribir en fichero.php pero solo en el valor de la variable

Tengo un fichero.php de configuracion de mi sistema, donde guardo entre otras cosas la conexion a mi DB y los datos del usuario principal.

Sin embargo necesito ingresar esos datos por medio de un formulario, y como entenderan no es un archivo plano.txt por lo cual necesito ingresar valores, solo en el lugar exacto:

fichero.php
-------------------
$nombre_db="mi_db";
$usuario"="joe";

$password="mi_contraseña";

Con ven, me intereza escribir solo dentro de las comillas. ¿Alguien sabe como podria hacer eso?.

Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #2 (permalink)  
Antiguo 23/11/2005, 16:15
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
y como entenderan no es un archivo plano.txt
no es un .txt pero sí es un archivo de texto plano.

Cita:
Con ven, me intereza escribir solo dentro de las comillas. ¿Alguien sabe como podria hacer eso?.
... una vez aclarado que es un archivo de texto plano... en las FAQ tienes una función que sirve para cambiar palabras.

No amplio más porque preguntaría: ¿por que no lo generas desde 0?

- Otra pregunta... si es solo un archivo de configuración de tu sistema ¿vaz a editarlo dinámicamente? ... ¿por qué la necesidad de que provenga de un formulario?

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 23/11/2005, 16:56
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años, 6 meses
Puntos: 0
Cita:
¿vaz a editarlo dinámicamente? ...
Que entiendes por editar dinamicamente. SI te refieres a hacerlo por medio de un formulario. SI

Cita:
¿por qué la necesidad de que provenga de un formulario?
Tengo esa necesidad por que estoy haciendo un instalador vía web de mi aplicacion, para facilitar la tarea.

Respecto a la clase recomendada, le daré una revisada. Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #4 (permalink)  
Antiguo 23/11/2005, 17:12
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años, 6 meses
Puntos: 0
No soy de los que buscan el facilismo en el trabajo y menos cuando se trata de pedir consejos, sin embargo te agradeceré JAM1138 que me indiques la ruta del FAQ donde se explica la función que sirve para cambiar palabras, pues por mas que busco no lo hallo en las FAQ.

Gracias
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #5 (permalink)  
Antiguo 23/11/2005, 17:39
dreglad
Invitado
 
Mensajes: n/a
Puntos:
Modificar un archivo .php no es la forma más correcta de hacer lo que quieres.

Yo lo haría con un archivo de configuración estilo PHP.INI.

Puedes establecer todas las variables de configuración dentro de un archivo (por ejemplo config.ini).

La función "parse_ini_file" lee este arcvhivo y devuelve un arreglo con todas las variables. De esta forma sólo tienes que modificar dicho archivo.

Aquí hay una buena referencia con varios ejemplos:
http://www.php.net/parse_ini_file
  #6 (permalink)  
Antiguo 23/11/2005, 18:25
 
Fecha de Ingreso: mayo-2002
Mensajes: 486
Antigüedad: 22 años, 6 meses
Puntos: 0
Gracias dregland, lo revisaré y te cuento
__________________
Sistemass.com - Centro de capacitación profesional
http://www.sistemass.com
  #7 (permalink)  
Antiguo 23/11/2005, 18:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
te agradeceré JAM1138 que me indiques la ruta del FAQ
FAQ: ¿Cómo reemplazar palabras de una cadena?

... la propuesta de dregland es muy buena... pero eso sería para interpretar el archivo (que tomaria más tiempo) queda el problema de escribir en él...

Sigo preguntando (para ambos casos) ¿por qué no crear tu archivo desde 0? ó reemplazarlo en su defecto (si existe)... porque para lo que planteas ahora tendrías que leer, parsear, suplantar y volver a escribir... te ahorras mucho trabajo. O planteas la estructura del archivo pudiese variar (que el usuario agrege sus propias opciones).

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 24/11/2005, 06:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
kotosh

En general en el trabajo con archivos de texto plano .. la lectura y escritura se hace secuencial (no sólo en "PHP" sino en cualquier lenguaje). El hecho de pretender escribir algo en cierta parte de un archivo de texto plano .. por lo menos en PHP no hay función "nativa" que lo haga. Si no lo hace tu lenguaje de turno tendrías que implementar tu própio método:

El archivo en principio debes leerlo. Tu defines una estructura mas o menos clara: Una línea por "variable" y el "dato" a modificar sería lo que venga despues del primer = (igual) ..

En definitiva .. leer el archivo lo puedes hacer vía:
file()
www.php.net/file

Ahí obtendras un array que corresponderá a una línea por elemento del mismo. Luego tendrás que "parsear" esa cadena (línea que obtines) para buscar tu patron que es donde empieza tu "dato" a sustituir. Esto lo puedes hacer con expresiones regulares (tema que no es de PHP própio sino que también lo usan y definen otros lenguajes).

Un tutorial al respecto:
http://www.ignside.net/man/php/regex.3.php

En este punto ya tendrías localizado el dato a modificar y lo más problable que modificado. Bien, .. una vez generado tu nuevo "array" con los valores alterados o incluso creado nuevos .. tendrías que generar de nuevo el archivo a partir de ese array. Aquí volvemos a las funciones fopen() .. etc para "escribir" el archivo -por completo- nuevamente.

En la documentación oficial sobre la función parse_ini() (http://www.php.net/parse_ini_file) si te fijas en los comentarios de los usuarios tienes várias propuestas para leer/buscar sobre archivos de texto plano con ese tipo de estructura (o parecida).

Y .. si buscas en sitios como www.phpclasses.org seguro que alguien ya habrá diseñado algo similar (de hecho si tu lo llegas hacer no estaría de más compartirlo con la comunidad).

Por ejemplo:
http://www.phpclasses.org/browse/package/2628.html
(genera archivos tipo .ini .. es decir . .no son .php con código PHP tipo $variable="valor"; sino variable = valor que serán "parseados" por la función parse_ini() para que puedas usar esos datos en tu script PHP pero como un array que es lo que este entrega).

Un saludo,
  #9 (permalink)  
Antiguo 31/01/2006, 17:04
 
Fecha de Ingreso: julio-2004
Mensajes: 51
Antigüedad: 20 años, 4 meses
Puntos: 0
hola podriais poner un ejemplo de como hacer un config atraves de un formulario y q el archivo de datos sea ej:
<?php
$variable = valor;
$variable2 = valor2;
...
?>

asi 5 o 6 valores con w+ para sobrescribir sobre lo anterior

pd:No se nada de esto de modificar archivos por web y quiero aprender a usarlo
  #10 (permalink)  
Antiguo 01/02/2006, 06:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Te recomiendo que leas la documentación de PHP sobre tratamiento de archivos:

www.php.net/file

Ahí veras ejemplos .. fijate que lo que vas a escribir en un archivo en el fondo es "texto" .. ahora, si lo guardas con extensiones .php y lo llamas en tus scritps PHP (bajo un include() por ejemplo) será interpretado .. así de sencillo.

Haz tus pruebas (tras la lectura y visto los ejemplos de la documentación de PHP) y con dudas concretas realiza tu pregunta en un tema nuevo si lo deseas o en este.

Un saludo,
  #11 (permalink)  
Antiguo 01/02/2006, 10:15
 
Fecha de Ingreso: julio-2004
Mensajes: 51
Antigüedad: 20 años, 4 meses
Puntos: 0
gracias por tu respuesta pero esque no entiendo como hacer lo q yo quiero q es crear un archivo de instalacion q guarde los datos en un .php normal y corriente como variables para q cuando lo incluya en otro archivo y use esa variable la lea en el archivo de configuracion
  #12 (permalink)  
Antiguo 01/02/2006, 11:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero .. (disculpa que me ponga pesado .. ) tu has visto los ejemplos de PHP.net sobre las funciones fopen() y afines para crear un simple archivo de texto plano?

Lo único que debes conocer (que tal vez no mencione o deje claro php.net por qué no es su cometido) es que el "salto de línea" en un archivo de texto plano (da igual si luego lo guardas como ya te dije como .php y como tal tenga algún sentido para un interprete como PHP o no ...) es el código:

\n

Intentalo y sobre todo pon aquí lo que has intentado.

Un saludo,
  #13 (permalink)  
Antiguo 01/02/2006, 12:29
 
Fecha de Ingreso: julio-2004
Mensajes: 51
Antigüedad: 20 años, 4 meses
Puntos: 0
e intentado escribirlo pero en la variable
$contenido
q es lo q voy a escribir quiero poner mas variables ej
Código PHP:
<?
$contenido 
"
<?
mysqlserv = tal;
mysqlus = tal;
mysqlpass = tal;
mysqlbd = tal;
?>
"
;
?>
pero esto se q esta mal y no se como ponerlo para q no de error escribiendo exactamente lo que pone en negrita eso es lo q m blokea

PD: me lo lei pero no entendia nada asta q me e dado cuenta d como era la cosa
  #14 (permalink)  
Antiguo 01/02/2006, 12:50
 
Fecha de Ingreso: febrero-2004
Mensajes: 138
Antigüedad: 20 años, 9 meses
Puntos: 2
Respondiendo a kotosh...

Este codigo no lo probe, porque no estoy en mi PC, y no tengo ningun server al q subir el archivo, pero aqui va:

Supongamos q tu archivo se llama db.php

db.php
Código PHP:
<?
$dbname
"name";
$dbuser"user";
$dbpass"pass";
?>
Este es el codigo para modificar el contenido de una variable, como escribio un usuario en este post, no existe la funcion var_content_replace(), sino que tenes q dar rienda suelta a la imaginacion...supongamos que vamos a reemplazar la variable $dbuser:

Código PHP:
<?
$variable_a_modificar
"\$dbuser"//Fijense que escapé el signo $ con la barar invertida \, para que no se tome como el valor de la variable $dbuser
$nuevo_contenido"\"usuario\";"//Lo que queremos que aparesca en la variable
$filefile ("db.php");
for (
$i=0;$i<count($file);$i++){
$datoexplode ("="$file[$i]);
$nombre_variable$dato[0];
$contenido_variable$dato[1];
if (
$nombre_variable==$variable_a_modificar){
$file[$i]= "$nombre_variable= $nuevo_contenido\n";
$flfopen ("db.php""w");
for (
$i=0;$i<count($file);$i++){
fwrite ($fl$file[$i]);
}
fclose ($fl);
}
}
?>
Disculpen que no pueda revisar el codigo, me avisan si funciona, saludos a todos!

Alejo
__________________
De mucho estudiar nadie se murió, pero mas vale no arriesgarse
  #15 (permalink)  
Antiguo 01/06/2008, 15:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Escribir en fichero.php pero solo en el valor de la variable

Funciona perfecto, además, es la solución a uno de mis problemas. Gracias y saludos.
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 03:44.