Autor Tema: Cómo escribir datos en archivos txt usando PHP en varias líneas CU00836B  (Leído 3352 veces)

sergiosacek

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Posible solucion para el ejercicio a) del curso de programación web con php: Función fopen (modo), fgets, fputs, fclose y feof.

Código: [Seleccionar]
<!DOCTYPE html>

<html>
    <head>
        <title>Ejemplo aprenderaprogramar.com</title>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="formularioDatos" method="post" action="fp.php">
        Introduzca primer numero: <input type="text" name="numero1" value="">
        <br/> <br/>
         Introduzca segundo numero: <input type="text" name="numero2" value="">
        <br/> <br/>
         Introduzca tercer numero: <input type="text" name="numero3" value="">
        <br/> <br/>
        <input value="Enviar" type="submit" />
        </form>
    </body>
</html>

PHP que cree..

Código: [Seleccionar]
<?php 

$numero1 $_POST["numero1"];
$numero2 $_POST["numero2"];
$numero3 $_POST["numero3"];

$fp fopen("datosEjercicio.txt""w");

fputs($fp$numero1);
fputs($fp$numero2);
fputs($fp$numero3);

fclose($fp);

echo "$numero1";
echo "<br>";
echo "$numero2";
echo "<br>";
echo "$numero3";
?>

Espero haber entendido bien el problema
« Última modificación: 18 de Julio 2016, 14:24 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola sergio he probado tu código con los números 22, 55 y 88, y funciona bien, lo único que he visto a mejorar es que en el fichero los datos se han escrito en una sola línea

225588

Pero el ejercicio te pide que se escriban en tres líneas:

22
55
88

Te faltan los apartados b, c y d del ejercicio.

También debes tener en cuenta que el ejercicio no pedía que existiera un formulario para envío de datos y recuperarlos por POST, por ello puedes resolver el ejercicio sin necesidad de un formulario, como se hace en https://www.aprenderaprogramar.com/foros/index.php?topic=2796.0

Saludos

sergiosacek

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Posible solucion para el ejercicio a), b), c) y d) del curso de programación web con php: Función fopen (modo), fgets, fputs, fclose y feof.

Código: [Seleccionar]
<!DOCTYPE html>

<html>
    <head>
        <title>Ejemplo aprenderaprogramar.com</title>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="formularioDatos" method="post" action="fp.php">
        Introduzca primer numero: <input type="text" name="numero1" value="">
        <br/> <br/>
         Introduzca segundo numero: <input type="text" name="numero2" value="">
        <br/> <br/>
         Introduzca tercer numero: <input type="text" name="numero3" value="">
        <br/> <br/>
        <input value="Enviar" type="submit" />
        </form>
    </body>
</html>

PHP que cree..

Código: [Seleccionar]
<?php 

$numero1 $_POST["numero1"];
$numero2 $_POST["numero2"];
$numero3 $_POST["numero3"];

function escribirTresNumeros($numero1$numero2$numero3)
{
$fp fopen("datosEjercicio.txt""w");

fputs($fp$numero1."\n"$numero2 ."\n"$numero3 ."\n");

fclose($fp);
}

echo "$numero1";
echo "<br>";
echo "$numero2";
echo "<br>";
echo "$numero3";



function obtenerSuma($ruta)
{
$resul 0;
$aux 0;
$linea = array();
$fp fopen($ruta"r");

while (!feof($fp)) {
$linea[$aux] = fgets($fp);
$aux++;
}
for ($i=0$i count($linea); $i++) { 
$resul $resul $linea[$i];
}
fclose($fp);
echo "<br>";
return $resul;
}

function obtenerArrNum($ruta)
{
$array = array();
$cont 0;
$fp fopen($ruta"r");
while (!feof($fp)) {
$array[$cont] = fgets($fp);
$cont++;
}
fclose($fp);
return $array;
}

escribirTresNumeros(2814);
echo "Suma: " obtenerSuma("datosEjercicio.txt");
echo "<br/>";
$arrayObtenido obtenerArrNum("datosEjercicio.txt");
echo "<br/>Elementos del array obtenido con la función: </br>";
for ($i=0$i count($arrayObtenido) - 1$i++) { 
echo $arrayObtenido[$i] .", ";
}

?>
« Última modificación: 03 de Agosto 2016, 18:05 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola el ejercicio está ahora mucho mejor

Comentarios:

Dentro de la función function obtenerSuma($ruta) no deberías tener echo "<br>";

La función debe limitarse a devolver algo con return, no debe hacer otras cosas (como incrustar un <br> mediante una instrucción echo)

Con el nuevo código php ya no hace falta el archivo html, ni son necesarias las líneas:

   $numero1 = $_POST["numero1"];
   $numero2 = $_POST["numero2"];
   $numero3 = $_POST["numero3"];

en el archivo php

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".