editar línea de archivo txt desde php

Iniciado por usuario oculto, 25 Julio 2011, 01:49 AM

0 Miembros y 1 Visitante están viendo este tema.

usuario oculto

 Lo que quiero hacer es por ejemplo cambiar la linea de un archivo txt desde un php

Archivo .txt

Código (php) [Seleccionar]
  q34q34rq34q
 234342
 werwe
 werwr


desde un php cambiar línea 3, por "lol" y quedaría...

Código (php) [Seleccionar]
 r q34q34rq34q
 234342
 lol
 werwr


llevo 2 días buscando en google y lo máximo que conseguí fue añadir contenido en la primera linea:s
Alguien sabe como se hace?

 

graciasss
Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

Nakp

cárgalo con fopen a un textarea y después de editarlo vuelve a guardarlo reemplazando el contenido del archivo por el del textarea :P perdona que no te escriba un código pero no ando con mucho tiempo :xD
Ojo por ojo, y el mundo acabará ciego.

raul338

Yo hago es hacer un explode para separar las lineas, entonces escribo las lineas anteriores, la linea nueva y las demas lineas :P

Con un foreach despues del explode y un IF se puede :D

usuario oculto

@nakp
pero no quiero hacer un editor del archivo entero que muestre el archivo, solo de la línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

raul338

Código (php) [Seleccionar]

$handle = fopen("file.txt", "r");
$txt = LeerArchivo($handle); // cargas el archivo a una variable, no te dejo el code. hazlo como ejercicio xD
fclose($handle);

$txt = explode(_SLN, $txt); // _SLN = "\r\n"
$pre = ""; $post = "";
foreach ($txt as $dir) {
     // De alguna forma identificas la linea 8-)
     if(....) {
if (!$exists)
$pre .= $dir._SLN;
else
$post .= $dir._SLN;
} else
$exists = true;
}
}
if ($exists)
$handle = fopen("file.txt", "w");
fwrite($handle, $pre);
fwrite($handle, "Linea Actualizada");
fwrite($handle, $post);
fclose($handle);
} else
dai("No hay cambios");


Algo asi :P

#!drvy

#5
Código (php) [Seleccionar]

<?php
// Abrir el archivo
$archivo 'temp.txt';
$abrir fopen($archivo,'r+');
$contenido fread($abrir,filesize($archivo));
fclose($abrir);

// Separar linea por linea
$contenido explode("\n",$contenido);

// Modificar linea deseada ( 2 ) 
$contenido[2] = 'jajaja little monkey';

// Unir archivo
$contenido implode("\r\n",$contenido);

// Guardar Archivo
$abrir fopen($archivo,'w');
fwrite($abrir,$contenido);
fclose($abrir);

?>


Archivo antes:

qwe
rty
uio
pas


Archivo despues:

qwe
rty
jajaja little monkey
pas


Obviamente, es 100 veces mejorable.. pero sirve para hacerse la idea no ? xD



Saludos

usuario oculto

#6
Cita de: drvy | BSM en 25 Julio 2011, 02:16 AM
Código (php) [Seleccionar]

<?php
// Abrir el archivo
$archivo 'temp.txt';
$abrir fopen($archivo,'r+');
$contenido fread($abrir,filesize($archivo));
fclose($abrir);

// Separar linea por linea
$contenido explode("\n",$contenido);

// Modificar linea deseada ( 2 ) 
$contenido[2] = 'jajaja little monkey';

// Unir archivo
$contenido implode("\r\n",$contenido);

// Guardar Archivo
$abrir fopen($archivo,'w');
fwrite($abrir,$contenido);
fclose($abrir);

?>


Archivo antes:

qwe
rty
uio
pas


Archivo despues:

qwe
rty
jajaja little monkey
pas


Obviamente, es 100 veces mejorable.. pero sirve para hacerse la idea no ? xD



Saludos

¿por qué modifica la 3 y no la 2 como se indica?
pero ya tengo algo que se acerca mas :P
Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

#!drvy

Por que la array de php incluye también el 0  :P



Saludos

usuario oculto

#8
Cita de: drvy | BSM en 25 Julio 2011, 02:31 AM
Por que la array de php incluye también el 0  :P



Saludos

entonces creo que ya tengo lo que necesitaba, muchas gracias a todos, no sabía que me ayudarían tan rápido :D
mucho nivel en este foro
Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

WHK

No siempre funciona un \n\r porque no todos los textos están diseñados en windows, algunos ni si quiera usan \n, por eso yo uso nl2br() y después le hago explode al '<br />'