elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Modificar linea en archivo de texto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Modificar linea en archivo de texto  (Leído 4,639 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Modificar linea en archivo de texto
« en: 8 Diciembre 2010, 11:23 am »

Hola expertos!!

miren,intento borra una linea de un archivos,el caso es que me la borra,pero quiero que despues me esscriba una cosa en ese mimsa linea y eso ya no me lo hace.
Código
  1. $fname = "Categorias.html";
  2. $lines = file($fname);
  3. $out = '
  4. <!--Cat--> <input type="Submit" name="Boton" value="Categoria" style="float:left; margin-left: 6px; margin-top: 10px; width: 120px; height: 25px; border:none; color:white; cursor:pointer; background:url(BS1.png);">';
  5.  
  6. foreach($lines as $line) if(!strstr($line, "<!--Cat-->")) @$out .= $line;
  7. $f = fopen($fname, "w");
  8. fwrite($f, $out);
  9. fclose($f);
  10.  

la linea a borrar se identifica por el " <!--Cat--> " ,el caso es que me la borra,pero despues lo que quieor que me escriba ($out) me lo escribe pero al principio del archivo,necesito que me lo escrba en donde borro la linea (que es dentro de un form en verdad)


alguna idea?¿



saludos y mil gracias por todo


« Última modificación: 8 Diciembre 2010, 11:30 am por Novlucker » En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: Modificar linea en archivo de texto
« Respuesta #1 en: 8 Diciembre 2010, 11:36 am »

Deja una marca o algo en esa linea, y luego le haces un replace


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Modificar linea en archivo de texto
« Respuesta #2 en: 8 Diciembre 2010, 14:47 pm »

Podrias ponerme como seria el codigo si no es mucho pedir porfavor?¿ :S


gracias
En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Modificar linea en archivo de texto
« Respuesta #3 en: 8 Diciembre 2010, 16:25 pm »

Riki_89D el problema es que estas asignando un valor inicial a la cadena $out, luego de eso dentro del for asignas el contenido del archivo sin la linea que quieres eliminar, por eso te sale la línea esa al inicio del archivo y te borra la otra.

Para solucionarlo debes usar una variable diferente y asignarla en la condición que usas dentro del bucle, por ejemplo algo así:

Código:
$fname = "Categorias.html"; 
$lines = file($fname);
$sCadena = '<!--Cat--> <input type="submit" name="Boton" value="Categoria" style="float:left; margin-left: 6px; margin-top: 10px;
width: 120px; height: 25px; border:none; color:white; cursor:pointer; background:url(BS1.png);" />';

foreach($lines as $line)
{
   if(!strstr($line, "<!--Cat-->"))
      $out .= $line;
   else
      $out .= $sCadena;
}

ó
Código:
foreach($lines as $line) 
$out .= !strstr($line, "<!--Cat-->") ? $line : $sCadena;

Después ya puedes almacenar los datos en el archivo.
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Modificar linea en archivo de texto
« Respuesta #4 en: 8 Diciembre 2010, 17:11 pm »

Hola,ya intente adaptarlo todo pero no hace nada mas que borrame el contenido del archvo :S
Código
  1.  
  2. $fname = "Categorias.html";
  3. $lines = file($fname);
  4. $out = '<!--Cat--> <input type="submit" name="Boton" value="Categoria" style="float:left; margin-left: 6px; margin-top: 10px;
  5. width: 120px; height: 25px; border:none; color:white; cursor:pointer; background:url(BS1.png);" />';
  6.  
  7. foreach($lines as $line)
  8. {
  9.   if(!strstr($line, "<!--Cat-->"))
  10.      $out .= $line;
  11.   else
  12.      $out .= $out;
  13. }
  14.  
  15.  
  16. fopen($fname,"w");
  17. fwrite($fname,$out);
  18. fclose($fname);
  19.  


que hay de mal ai?¿
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines