Foros del Web » Programando para Internet » PHP »

comparar y reemplazar

Estas en el tema de comparar y reemplazar en el foro de PHP en Foros del Web. hola tengo esto: Código PHP: <?php header ( 'Content-Type: text/plain' ); header ( 'Content-Disposition: attachment; filename="autoexec.cfg"' ); echo  $_POST [ 'name' ]; echo  $_POST [ 'password' ]; echo  ...
  #1 (permalink)  
Antiguo 01/11/2003, 22:24
Gen
 
Fecha de Ingreso: noviembre-2002
Mensajes: 39
Antigüedad: 15 años
Puntos: 0
comparar y reemplazar

hola tengo esto:
Código PHP:
<?php
header
('Content-Type: text/plain');
header('Content-Disposition: attachment; filename="autoexec.cfg"');

echo 
$_POST['name'];
echo 
$_POST['password'];
echo 
$_POST['forward'];
echo 
$_POST['back'];
echo 
$_POST['moveright'];
echo 
$_POST['moveleft'];
echo 
$_POST['moveup'];
echo 
$_POST['movedown'];
echo 
$_POST['attack'];
echo 
$_POST['reload'];
echo 
$_POST['opendoor'];
echo 
$_POST['dropweapon'];
echo 
$_POST['dropitem'];
echo 
$_POST['bandage'];
echo 
$_POST['irvision'];
echo 
$_POST['punch'];
echo 
$_POST['special'];
echo 
$_POST['knife'];
echo 
$_POST['blaster'];
echo 
$_POST['2ndPistol'];
echo 
$_POST['grenade'];
echo 
$_POST['z1'];
echo 
$_POST['z2'];
echo 
$_POST['z4'];
echo 
$_POST['z6'];
echo 
$_POST['weapon'];
echo 
$_POST['zoomup'];
echo 
$_POST['zoomdown'];
echo 
$_POST['resetzoom'];
echo 
$_POST['fps'];
echo 
$_POST['rate'];
echo 
$_POST['modulate'];

function 
file(baseconfig.txt

?>
baseconfig.txt
Código:
set name "[!name!]" 
set pw [!password!] u
bind [!forward!] "+forward"
...
...
...
...
y necesito reemplazar los datos dentro de [!!] segun corresponda con las variables obtenidas correspondientes
  #2 (permalink)  
Antiguo 01/11/2003, 23:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Primero debes leer el archivo y procesar línea por línea. Para eso lo abres con file() y recorres el array que obtienes:

Código PHP:
$archivo=file("tu.txt");
foreach(
$archivo as $linea){
// proceso


A cada línea debes buscar tu "tag" para sustituirlo por la variable que le corresponda ...

Podría ser con expresiones regulares (seguro que más optimo el código .. pero no son mi fuerte :( )...

Usando un array con mis "tag" que (resulta en este caso) que es igual al nombre de mi variable .. Podríamos aplicar el str_replace() correspondiente a cada línea, recorriendo en cada una nuestro array de tags por si hay uno o varios tag's que sustituir.

Quedaría algo así:

Código PHP:
<?php
// Leer el archivo hacia un array (un elemento por línea)
$archivo=file("tu.txt");
// el array con los tag's que habrá que sustituir
$mis_tags=array("name","password","etc");

// bucle. Recorrer línea a línea el archivo.
foreach($archivo as $linea){
   
// Recorrer el array de mis tags para sustituir si aparecen en la línea en curso.
    // Sustituir y acomular en $archivo_nuevo
   
foreach($mis_tags as $tag){
       
$archivo_nuevo .=str_replace('!'.$tag.'!',$_POST[$tag],$linea)."\n";
   }
}

header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename="autoexec.cfg"');

echo 
$archivo_nuevo;
?>
En $archivo_nuevo, voy concatenando todo el resultado de cada línea y añado el salto de linea \n ...


PD: No sé si irá .. escribí todo el código "al vuelo" .. En teoría debería ir.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 01/11/2003 a las 23:26
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 07:42.