Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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.
<!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..
<?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
-
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
-
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.
<!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..
<?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] .", ";
}
?>
-
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