elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:18  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  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 1,389 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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
$fname = "Categorias.html"; 
$lines = file($fname);
$out = '
<!--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;
$f = fopen($fname, "w");
fwrite($f, $out);
fclose($f);
 

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 por Novlucker » En línea
xassiz~


Desconectado Desconectado

Mensajes: 428



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

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


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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


gracias
En línea
cassiani


Desconectado Desconectado

Mensajes: 946


« Anterior | Próximo »


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

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: 848


BCN CITY


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

Hola,ya intente adaptarlo todo pero no hace nada mas que borrame el contenido del archvo :S
Código
 
$fname = "Categorias.html";
$lines = file($fname);
$out = '<!--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 .= $out;
}
 
 
fopen($fname,"w");
fwrite($fname,$out);
fclose($fname);
 


que hay de mal ai?¿
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines