Foros del Web » Programando para Internet » PHP »

Cambiar variables en txt

Estas en el tema de Cambiar variables en txt en el foro de PHP en Foros del Web. Cómo puedo cambiar el valor de las variables de un txt desde un archivo php...
  #1 (permalink)  
Antiguo 24/08/2004, 12:39
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
Cambiar variables en txt

Cómo puedo cambiar el valor de las variables de un txt desde un archivo php

Última edición por jonai; 24/08/2004 a las 12:55
  #2 (permalink)  
Antiguo 24/08/2004, 16:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y que serían las "variables"? .. que formato tiene tu "txt" (sus datos)?

En principio tendrías que abrir el archivo (fopen() y funciones afines) .. para llevarlo a un array o similar.. trabajarlo (eliminando/modificando el indice de dicho array obtenido y parte concreta) para luego guradarlo denuevo con fopen() nuevamente en modo escritura y fwrite() ...

Un saludo,
  #3 (permalink)  
Antiguo 25/08/2004, 12:52
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
Bueno lo que quiero es un poco (o nada complejo, según quien lo mire), en este caso empiezo por el final, de lo que se trata finalmente es leer desde un archivo flash dos variables, y también crearlas desde él mismo.

Lo que le asigno al flash es un nombre con el que va a trabajar, pongamos que dicho nombre es "pepito". bien el flash al final va a leer dos variables que serán "&pepitoa=" y "&pepitob=" desde un archivo llamado pepito.txt.

Asi tengo que:
Mi variable dentro de flash se llama pepito
Mi archivo txt se llama pepito.txt
Mis dos variable a leer se llaman &pepitoa= y &pepitob=
Que dichas dos variables son numéricas

Lo que tengo que conseguir es crear dichas dos variable y el archivo.txt desde el principio y es ahí donde fallo ya que mis conocimientos de php son muy limitados.

Alguna sugerencia??
  #4 (permalink)  
Antiguo 25/08/2004, 13:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Alguna sugerencia??
Vistes ya los ejemplos de uso de fopen() y en general de las funciones del grupo para crear archivos de texto plano?

www.php.net/fopen

Tienes ejemplos. Haz tus pruebas y nos avisas que tal te fué.

Un saludo,
  #5 (permalink)  
Antiguo 25/08/2004, 14:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
ok, viendolo en estos momentos gracias
  #6 (permalink)  
Antiguo 26/08/2004, 14:07
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
Poco a poco

Bueno he avanzado un poco pero no se si voy bien o no, por ahora lo que llevo es esto:
Código PHP:
<?
extract
($HTTP_GET_VARS);
extract($HTTP_POST_VARS);

// fijo las variables y el nombre del archivo

    
$recibido="hola";
    
$archivo "$recibido.txt" ;

// abro el archivo si existe y si no se crea y vuelvo a cerrarlo

    
$fp1 fopen($archivo,"a+"); 
    
fclose($fp1); 

// abro el archivo para obtener los datos

//    Aqui es donde me quedo bloqueado
//    No se cómo puedo hacer para leer los datos correctamente



// sumo el dato a la variable que corresponda

$datos1=$datoobtenido1;
$datos2=$datoobtenido2;

if (
$action == "suma1"){
$datos1=$datos1+1;
}
if (
$action == "suma2"){
$datos2=$datos2+1;
}

// construyo el resultado final

    
$opcion1 "&.$recibido.1=$datos1";
    
$opcion2 "&.$recibido.2=$datos2" ;
    
$variables "$opcion1 \n$opcion2";

// abro el archivo para introducir las nuevas variables
     
    
$fp3 fopen($archivo,"w"); 
    
fwrite$fp3$variables);
    
fclose($fp3); 

?>

Cómo puedo hacer para leer los datos teniendo en cuenta que lo que me interesa leer del txt está tras el signo = . Supongo que es a través de lo que he visto que llaman array() pero no sé como se utiliza. Qué signifoca implode explode.

Gracias por adelantado

Nota la variable $recibido es sólo a modo de prueba, de hecho esa variable y $action serán enviada y recogidas por este archivo.
  #7 (permalink)  
Antiguo 26/08/2004, 17:44
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
lo logré o casi

Bueno después de muchas vueltas he llegado al siguiente código que funciona:

Código PHP:
<?
extract
($HTTP_GET_VARS);
extract($HTTP_POST_VARS);

// fijo las variables y el nombre del archivo

    
$recibido="hola";
    
$archivo "$recibido.txt" ;

// abro el archivo si existe y si no se crea y vuelvo a cerrarlo

    
$fp1 fopen($archivo,"a+"); 
    
fclose($fp1); 

// abro el archivo para obtener los datos

   
$fp2 fopen($archivo,"r"); 
   
$todo fread ($fp2filesize ($archivo));
   
$obtenido=explode("\n",$todo);
   
$linea1=explode("=",$obtenido[0]);
   
$linea2=explode("=",$obtenido[1]);
   
fclose($fp2); 



// sumo el dato a la variable que corresponda

$datos1$linea1[1];
$datos2$linea2[1];



if (
$action == "suma1"){
$datos1$datos1 1;
}
if (
$action == "suma2"){
$datos2$datos2 1;
}

// construyo el resultado final


$sin1="& $recibido 1";
$sin1=preg_replace("/ +/","",$sin1);

$sin2="& $recibido 2";
$sin2=preg_replace("/ +/","",$sin2);


    
$opcion1 "$sin1=$datos1";
    
$opcion2 "$sin2=$datos2" ;
    
$variables "$opcion1 \n$opcion2";



// abro el archivo para introducir las nuevas variables
     
    
$fp3 fopen($archivo,"w"); 
    
fwrite$fp3$variables);
    
fclose($fp3); 

print (
"linea1 $obtenido[0] <br>");
print (
"linea2 $obtenido[1] <br>");
print (
"dato1 $linea1[1] <br>");
print (
"dato2 $linea2[1] <br>");
?>
Hace justo lo que quiero, lo que pasa es que no ando muy fino en esto del php y me gustaría a ver si alguien le puede dar el visto bueno, o ve alguna forma de mejorarlo o de simplificarlo. En fin que alguno de vosotros le heche un vistazo.

Un saludo Jonai y gracias por adelantado
  #8 (permalink)  
Antiguo 26/08/2004, 20:21
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 está bien .. sólo hay detalles que PHP te ofrece otras funciones para hacerlo más resumido (y tal vez más óptimo) .. Por ejemplo:

Este código ...

Código PHP:
// abro el archivo para obtener los datos 

   
$fp2 fopen($archivo,"r"); 
   
$todo fread ($fp2filesize ($archivo)); 
   
$obtenido=explode("\n",$todo); 
es equivalente a:

Código PHP:
$obtenido=file($archivo); 

Los:
Código PHP:
$datos1$datos1 1
son equivalentes a:
Código PHP:
$datos++; 
Si esto es para quitar espacios de la cadena dada:
$sin1="& $recibido 1";
$sin1=preg_replace("/ +/","",$sin1);

se puede hacer simplemente:
Código PHP:
$sin1=str_replace(' ','',$sin1); 
Y así no usas expresiones regulares como las que usas con esas funciones preg_xxx() .. lo cual optimiza un poco esa taréa concreta.

Un saludo,
  #9 (permalink)  
Antiguo 27/08/2004, 12:08
 
Fecha de Ingreso: noviembre-2002
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
ok, gracias lo resumiré tal y como me dices, la verdad es que no se prácticamente nada de php, mucho código visto y pura logica pero poca práctica (para mi el diseño es solo un hobbie), pero en fin cuando tenga terminado lo que quiero ya lo subo y te aviso para que veas lo que es, ya que así sin saber php, y sin saber explicar lo que quiero vamos mal. Te diré que lo que mezclo es action con php para hacer un contador de descargas y previews. Por ahora lo he probado con el script que he hecho y funciona, le haré los cambios que me has dicho y listo.

Muchas gracias por todo, un saludo Jonai
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 22:00.