En este artículo vamos a hacer un simple contador con Flash y PHP usando para ello un simple TXT.

1.- Creamos una carpeta que la llamaremos ‘counter’ y le daremos todos los permisos ‘777′
2.- Creamos un archivo txt llamado ‘counter.txt’, le daremos también todos los permisos ‘777′ y escribiremos de primeras este codigo:

&counter=1

3.- Creamos un archivo php (’index.php’) que tendrá el siguiente código:

<?
//Leemos el contenido del archivo
$archivo = 'counter.txt';
$fp = fopen($archivo, 'r');
$contenido = fgets($fp);
fclose($fp);

//Desglosamos el contenido del archivo php
$arrayArchivo = explode('=',$contenido);
$nuevoValor = $arrayArchivo[1]+1;
$nuevoContenido = '&counter='.$nuevoValor;
$archivo = 'counter.txt';
$fp = fopen($archivo, 'w+');
fwrite($fp, $nuevoContenido);
fclose($fp);
?>


Este código lo que hace es que primero abre el archivo como solo lectura, lee el contenido. Utilizamos la funcion ‘explode’ para separar mediante un caracter (=) la cadena; nos devuelve un array. El valor 0 del array será ‘&counter’ y el valor 1, ‘1′.

A ese valor le sumamos uno mas. Volvemos a abrir el archivo, pero esta vez como lectura-escritura borrando su contenido y escribimos ‘&counter=’ concatenado con el valor nuevo. (&counter=2).

4.- Una vez hecho esto incluimos el codigo necesario para agregar un .swf al código HTML y al que añadiremos una variable num y le concatenaremos un ‘echo’ del nuevo valor calculado anteriormente en el PHP

...
<param name="movie" value="counter.swf?num=<?php echo $nuevoValor ?>">
  <param name="quality" value="high">
  <embed src="counter.swf?num=<?php echo $nuevoValor ?>" quality="high"
…

5.- Lo último que nos queda sería crear el archivo swf. Para ello crearemos un nuevo swf normal y corriente con un cuadro de texto con nombre de instancia ‘visitas_txt’. En el mismo fotograma añadiremos esta línea en el panel de acciones del fotograma:

visitas_txt.text = num;
//num es la variable que se le ha concatenado al nombre del swf.

Guardamos el fla y publicamos el swf como ‘counter.swf’.

Podeis ver un ejemplo del contador aquí.

Podeis descargaros un zip con el .fla, .swf, .php y .txt. counter.zip (7 kb)

Actualización: Hablando con David, mi compañero de trabajo, me hace una observación sobre el código: no hace falta abrir dos veces el archivo, una para lectura y otra para escritura, basta con abrirlo solo una vez con formato ‘a+’ [Apertura para lectura y escritura; ubica el apuntador de archivo al final del mismo. Si el archivo no existe, intenta crearlo.] Así que visto así el código sería:

<?
//Leemos el contenido del archivo
$archivo = 'counter.txt';
$fp = fopen($archivo, 'a+');
$contenido = fgets($fp);

//Desglosamos el contenido del archivo php
$arrayArchivo = explode('=',$contenido);
$nuevoValor = $arrayArchivo[1]+1;
$nuevoContenido = '&counter='.$nuevoValor;
fwrite($fp, $nuevoContenido);
fclose($fp);
?>