Autor Tema: (CU00837B) Ejercicio curso PHP escribir en ficheros fopen, fclose, fwrite  (Leído 4652 veces)

JuanMontaña

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Saludos.
 Aqui pongo el codigo del primer ejercicio de la leccion
Código: [Seleccionar]
<?php
function escribirNumerosMod($numeros,$ampliar){

$numeros= array (2,3,4);


$filee fopen("vacio.txt""w");
     
fwrite($filee$numeros[0]. $numeros[1].$numeros[2]);

     
fclose($filee);

fclose($filee);
        
    
fclose($filee);  

}
$numeros escribirNumerosMod('vacio.txt');

echo 
"Se han escrito los datos correctamente en el archivo" ;

?>

« Última modificación: 13 de Febrero 2015, 08:28 por Ogramar »

JuanMontaña

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Re:(CU00837B) Ejercicio curso PHP escribir en ficheros
« Respuesta #1 en: 12 de Febrero 2015, 19:04 »
SEGUNDO

Código: [Seleccionar]
<?php
function leerContenidoFichero($vacio) {  
$fp fopen("vacio.txt""r");
while(!
feof($fp)) {
$linea fgets($fp);
echo 
$linea "<br />";
}
fclose($fp);
 


}
echo   
leerContenidoFichero('vacio.txt');
?>



Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:(CU00837B) Ejercicio curso PHP escribir en ficheros
« Respuesta #2 en: 12 de Febrero 2015, 23:12 »
Hola Juan, el primer apartado es:

Código: [Seleccionar]
Crea el siguiente código PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que reciba dos parámetros:
 un array de valores enteros y una cadena de texto que puede ser "sobreescribir" ó "ampliar".
 La función debe proceder a: escribir cada uno de los números que forman el contenido del array en una línea
 de un archivo datosEjercicio.txt usando el modo de operación que se indique con el otro parámetro.
Si el archivo no existe, debe crearlo.

Aquí tienes varios errores:

$numeros= array (2,3,4); está mal planteado. $numeros es lo que tu le pasas a la función cuando la llamas desde fuera, no puedes definirlo dentro de la función.

Una instrucción como esta: fwrite($filee, $numeros[0]. $numeros[1].$numeros[2]); nunca se escribe así, siempre se hará con un bucle. ¿Por qué? Imagínate que en lugar de 3 números fueran 300 ¿escribirías trescientas veces uno a uno los números?

Por último tampoco tiene sentido escribir  fclose($filee); tres veces. Normalmente haces la apertura del fichero una vez, luego las operaciones que correspondan, y luego cierras el fichero (una única vez). No deben repetirse ni aperturas ni cierre de ficheros.

Salu2

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:(CU00837B) Ejercicio curso PHP escribir en ficheros
« Respuesta #3 en: 12 de Febrero 2015, 23:16 »
El apartado b) es:

Citar
b) Una función (tipo procedimiento, no hay valor devuelto) denominada leerContenidoFichero que reciba como parámetro la ruta del fichero y muestre por pantalla el contenido de cada una de las líneas del fichero.

Este apartado está bien definido, lo único que debes tener en cuenta es que no debes escribir echo   leerContenidoFichero('vacio.txt');, sino simplemente  leerContenidoFichero('vacio.txt'); , ya que las instrucciones echo están dentro de la función.

Salu2

JuanMontaña

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 87
    • Ver Perfil
Re:(CU00837B) Ejercicio curso PHP escribir en ficheros
« Respuesta #4 en: 13 de Febrero 2015, 03:33 »
muchisimas gracias por tus observaciones lo de los tres veces el fclose eso si se me fue disculpa.

me cuesta trabajo añadirle el bucle me podrias dar un ejemplo de como quedaria el codigo ? con un bucle while o for.. no se el que sea mas oportuno.

Agradezco tu tiempo y ayuda ogramar

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:(CU00837B) Ejercicio curso PHP escribir en ficheros fopen, fclose, fwrite
« Respuesta #5 en: 13 de Febrero 2015, 08:30 »
Este ejemplo te puede servir de ayuda: https://www.aprenderaprogramar.com/foros/index.php?topic=1520.0

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