Hola!
Haces primero un bucle hasta el final del archivo:
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):
En tu código podrías ahorrarte también una variable:
$visitas=$linea;
por
Lo de aumentar las visitas queda menos "VB" así:
$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