elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda ejercicio 506 PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda ejercicio 506 PHP  (Leído 1,235 veces)
The_Saint

Desconectado Desconectado

Mensajes: 74


Ezo


Ver Perfil
Duda ejercicio 506 PHP
« en: 21 Enero 2014, 11:56 am »

Buenas a todos!

Estoy empezando con PHP, y estoy haciendo los ejercicios del portal :
http://foro.elhacker.net/ejercicios/ejercicios_php-t36010.0.html
El caso es que en el ejercicio 506 que ya he resuelto, en la funcion fwrite tengo que añadir al final un 26 para que me funcione.

Código:
<html>
<title>506. Hacer un contador de visitas con un archivo txt</title>
<?php
//Ahora leemos el fichero
$fp =fopen("contador.txt","r");
while(!feof($fp))
{
$linea=fgets($fp);
$visitas=$linea;
}
$visitas = $visitas +1;
fclose($fp);

$fp=fopen("contador.txt","w+");
fwrite($fp,$visitas,26);
fclose($fp);


?>

<body>
<h2>506. Hacer un contador de visitas con un archivo txt</h2>
Es usted la visita numero:<h1> <?php echo $visitas; ?> </h1>
</body>
</html>

La sintaxis de la funcion es :
int fwrite ( resource $handle , string $string [, int $length ] )

Entiendo que int $lenght es opcional, por lo que no entiendo porque si no lo pongo no funciona.

Si alguien pudiera aclarme su uso gracias!!! de antemano! :rolleyes:


En línea

<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>
karmany
Colaborador
***
Desconectado Desconectado

Mensajes: 1.614


Sueñas que sueñas


Ver Perfil WWW
Re: Duda ejercicio 506 PHP
« Respuesta #1 en: 25 Enero 2014, 11:56 am »

Hola!

Haces primero un bucle hasta el final del archivo:
Código
  1. while(!feof($fp)){...}
y en ese bucle vas obteniendo el contenido pero dependiendo del número de líneas. Si hay varias líneas te dará un valor no válido porque solo obtendrá la última línea (lo hago de cabeza, no puedo ahora probarlo).
YO hubiese puesto directamente esto (intval para que devuelva un valor entero):
Código
  1. $visitas = intval( fgets( $fp ));

En tu código podrías ahorrarte también una variable:
Código
  1. $linea=fgets($fp);
  2. $visitas=$linea;
por
Código
  1. $visitas=fgets($fp);

Lo de aumentar las visitas queda menos "VB" así:
Código
  1. $visitas++;

Finalmente abres el archivo en modo lectura-escritura (w+), yo creo que sobra con escritura (w). A ver si con estos cambios ya te funciona bien..

Un saludo


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda en ejercicio++
Ejercicios
Lamarkus 1 3,310 Último mensaje 1 Diciembre 2010, 17:31 pm
por [L]ord [R]NA
Duda con un ejercicio
Programación C/C++
goll9d 4 2,112 Último mensaje 13 Mayo 2012, 01:47 am
por goll9d
DUDA. Ejercicio en C.
Ejercicios
mariota1 7 5,576 Último mensaje 20 Septiembre 2012, 15:04 pm
por Stakewinner00
Duda con un ejercicio
Programación C/C++
lJvRl 3 2,031 Último mensaje 21 Abril 2013, 13:29 pm
por lJvRl
Duda ejercicio C
Programación C/C++
dennis094 4 2,136 Último mensaje 20 Diciembre 2013, 16:06 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines