Autor Tema: [Ayuda] Modificar línea específica de un .txt en PHP  (Leído 7316 veces)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
[Ayuda] Modificar línea específica de un .txt en PHP
« en: 06 de Abril de 2010, 16:56:50 pm »
Hola a todos, les plantearé la situación:

Supongamos que tengo un archivo.txt que contenga:

Código: [Seleccionar]
Pe*****123
JulioCamulo
Juanito
Yeyo
Lakaysa

¿Cómo puedo hacer para modificar por ejemplo, la línea 3 (Juanito)?

Comunidad PHPeros

[Ayuda] Modificar línea específica de un .txt en PHP
« en: 06 de Abril de 2010, 16:56:50 pm »

Desconectado chihue

  • PHPero Master
  • ******
  • Mensajes: 1.118
  • Karma: 43
  • Sexo: Masculino
  • 8 dias
    • Ver Perfil
    • Minichat con todo incluido
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #1 en: 06 de Abril de 2010, 17:46:16 pm »
Pulsas control + t i pones la linea y lo marcas y lo modificas

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #2 en: 06 de Abril de 2010, 20:00:46 pm »
¿Será que no fui muy explícito?

Hablo de que abro ese .txt desde un archivo php y mediante un formulario poder modificar esa línea.

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #3 en: 06 de Abril de 2010, 20:36:10 pm »
Usa la función file() y luego ve guardando las líneas que no quieres borrar un array y luego lo escribes. Nose si me explique bien..
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #4 en: 06 de Abril de 2010, 21:04:01 pm »
Usa la función file() y luego ve guardando las líneas que no quieres borrar un array y luego lo escribes. Nose si me explique bien..
Soy algo principiante, no capté muy bien.. Me pones un ejemplo? xD

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #5 en: 06 de Abril de 2010, 21:18:48 pm »
Sería algo como esto, sólo te faltara abrir el archivo y colocar cada línea en su lugar, lo podrías hacer con la función implode(). Si te ayude no dudes en darme karma.
<?PHP
$lineas 
file(&#39;tu archivo.txt&#39;);
for($i=0$i<count($lineas); $i++){
if(
$lineas[$i] == &#39;La linea que quieres modificar&#39;){
$lineas[$i] = &#39;Nueva linea&#39;;
}
?>


Me acavas de dar una idea, creare una clase para borrar,modificar,escribir y leer archivos.
« Última modificación: 06 de Abril de 2010, 21:20:40 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #6 en: 07 de Abril de 2010, 01:57:22 am »
 A ver, pongámoslo desde otra perspectiva...

archivo.txt
Código: [Seleccionar]

Hola, soy yo
Peperonimooooooo
Tarararara alalalalala
Yeaaaaaaaaaaaaaaaaah
Hi everybody

index.php
<?PHP
$file = file("task.txt");
explode("\n", $file);
$fcount = count($file);

for ($i = 1; $i < $fcount; $i++){
$tarea = '<td class="celda1"></td>';
echo ''.$i.'. '.$file[$i].' <a href="?edit='.$i.'">Modificar</a>';
    }
?>

Entonces ahora, ahí en la última linea puse el a href="?edit" y supongamos que al presionar ese botón, me edite el archivo de texto en 'dicha linea' y por ejemplo si es la línea 3, que le ponga <b></b> para que se ponga en negritas al mostrar.

Ejemplo:


archivo.txt
Código: [Seleccionar]

Hola, soy yo
Peperonimooooooo
<b>Tarararara alalalalala</b>
Yeaaaaaaaaaaaaaaaaah
Hi everybody

No capto muy bien como identificar esa línea de alguna forma...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #7 en: 07 de Abril de 2010, 02:04:59 am »
Mira lo primero es que el explode sobra porque el file te devuelve cada línea en forma de array, por ejemplo si quieres editar la línea 3 sería así:
<?PHP
$file = file("task.txt");
$file[3] = 'Modificando la linea 3';
?>
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #8 en: 07 de Abril de 2010, 02:28:48 am »
Mira lo primero es que el explode sobra porque el file te devuelve cada línea en forma de array, por ejemplo si quieres editar la línea 3 sería así:
<?PHP
$file = file("task.txt");
$file[3] = 'Modificando la linea 3';
?>
Eso sí lo entendí pero, necesito editar la línea del archivo de texto, no lo que se muestra.
Además, como puedo dar una 'orden' para que al presionar un botón se edité la línea que yo quiera...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #9 en: 07 de Abril de 2010, 02:31:00 am »
Creas un formulario y lo pasas por GET. Luego lo otro es sencillez. No entendi que querías decir con este ''Eso sí lo entendí pero, necesito editar la línea del archivo de texto, no lo que se muestra.''
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #10 en: 07 de Abril de 2010, 02:35:30 am »
Creas un formulario y lo pasas por GET. Luego lo otro es sencillez. No entendi que querías decir con este ''Eso sí lo entendí pero, necesito editar la línea del archivo de texto, no lo que se muestra.''

Es que según tengo entendido, al aplicar esto:

<?PHP
$file = file("task.txt");
$file[3] = 'Modificando la linea 3';
?>

Lo que hace es abrir el archivo task.txt, separar cada línea en array... Y lo último no modifica el archivo...

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #11 en: 07 de Abril de 2010, 02:36:05 am »
Seria asi:

<?PHP
$linea 
3;
$linea_nueva "hola";
$archivo "task.txt";
$contenido file_get_contents($archivo);
$lineas explode("\n"$contenido);
file_put_contents($archivostr_replace($lineas[($linea-1)], $linea_nueva."\n\r"$contenido));
echo 
count($lineas);
?>

Un saludo!

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #12 en: 07 de Abril de 2010, 02:40:13 am »
Seria asi:

<?PHP
$linea 
3;
$linea_nueva "hola";
$archivo "task.txt";
$contenido file_get_contents($archivo);
$lineas explode("\n"$contenido);
file_put_contents($archivostr_replace($lineas[($linea-1)], $linea_nueva."\n\r"$contenido));
echo 
count($lineas);
?>

Un saludo!
Te complicaste mucho haciendo el código pudiendo hacerlo en algo sencillo.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #13 en: 07 de Abril de 2010, 02:43:04 am »
Lo hize asi aposta para que el usuario lo pueda modificar a su gusto, se que lo podria haber echo en dos lineas pero Physlet no hubiese entendido nada  :)
Un saludo!

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Modificar línea específica de un .txt en PHP
« Respuesta #14 en: 07 de Abril de 2010, 02:51:35 am »
Lo hize asi aposta para que el usuario lo pueda modificar a su gusto, se que lo podria haber echo en dos lineas pero Physlet no hubiese entendido nada  :)
Un saludo!
Muchas gracias pro su ayuda chicos, pero sigo cayendo en lo mismo xD...
Como puedo 'nombrar' o algo así una línea determinada...