Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: sergiosacek en 13 de Julio 2016, 05:11

Título: Cómo escribir datos en archivos txt usando PHP en varias líneas CU00836B
Publicado por: sergiosacek en 13 de Julio 2016, 05:11
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
Título: Re:Cómo escribir datos en archivos txt usando PHP en varias líneas CU00836B
Publicado por: Alex Rodríguez en 18 de Julio 2016, 14:29
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
Título: Re:Cómo escribir datos en archivos txt usando PHP en varias líneas CU00836B
Publicado por: sergiosacek en 30 de Julio 2016, 04:12
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(2, 8, 14);		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] .", ";		}	?>
Título: Re:Cómo escribir datos en archivos txt usando PHP en varias líneas CU00836B
Publicado por: Alex Rodríguez en 03 de Agosto 2016, 18:14
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