Autor Tema: PHP leer y escribir archivos de texto (txt). Ejercicio CU00836B# del tutorial  (Leído 5032 veces)

Cabanota

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Hola colegas. No se si esta bien mi solución para el ejercicio CU00836B del curso de programación web con PHP. Espero sus comentarios. Gracias.

Citar
EJERCICIO

Crea las siguientes funciones en PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.

c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.

d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
function escribirTresNumeros($num1$num2$num3)
{
$fp fopen("fichero.txt""w");
fputs($fp$num1 "\n" $num2 "\n" $num3 "\n");
fclose($fp);
}

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);
return $resul;
}

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

for ($i=0$i count($array) - 1$i++) { 
echo $array[$i] . ", ";
}
fclose($fp);
}

escribirTresNumeros(2814);
echo "Suma: " obtenerSuma("fichero.txt");
echo "<br/>";
obtenerArrNum("fichero.txt");
?>

</body>
</html>
« Última modificación: 18 de Julio 2016, 14:28 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:EJERCICIO: CU00836B - Leer y escribir archivos de texto con PHP.
« Respuesta #1 en: 21 de Junio 2015, 18:05 »
Hola Cabanota, el apartado a) perfecto.

El apartado b) perfecto.

Para el apartado c) el enunciado pide que la función devuelva el array pero no dice nada de que la función deba recorrer el array ni mostrar su contenido, por ello es preferible no meter ese recorrido dentro de la función. Si es una función debe tener un return, eso es lo que te ha faltado.

El código con ese cambio para que la función obtenerArrNum devuelva un array y que el recorrido se haga fuera de la función quedaría así:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
function escribirTresNumeros($num1$num2$num3)
{
$fp fopen("ficheroBorrar.txt""w");
fputs($fp$num1 "\n" $num2 "\n" $num3 "\n");
fclose($fp);
}

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);
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("ficheroBorrar.txt");
echo "<br/>";
$arrayObtenido obtenerArrNum("ficheroBorrar.txt");
echo "<br/>Elementos del array obtenido con la función: </br>";
for ($i=0$i count($arrayObtenido) - 1$i++) { 
echo $arrayObtenido[$i] . ", ";
}

?>

</body>
</html>


Salu2

 

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".