PHP:¿Como puedo ver los usuarios en linea con un .txt?

De Foros del Web

Para usarlo solo tienes que incluir el archivo donde quieras ver los usuarios actuales require('usuarios.php'); y tener un .txt con el nombre usuarios.txt o bien puedes colocarle otro nombre en $usuarios=new Activos("aqui nombre.txt");Texto en cursiva

$usuarios=new Activos("usuarios.txt");


<?php
class Activos
{
	//creado por acoevil
	private $nombre;
	private $modo;
	private $ip;
	private $inactivo=300;
	private $hora;
	private $activos=0;
 
	function Activos($nombre)
	{
		$this->nombre=$nombre;
		$this->modo="r";
		$this->ip=$_SERVER['REMOTE_ADDR'];
		$this->hora=$tiempo=date("h:i:s");
		################################
		$apuntador=$this->abrir();
		$usuarios=$this->leer($apuntador);
		$this->escribimos($usuarios);
		echo "Usuarios en linea: ".$this->activos;
		}
	function abrir()
	{
		$apuntador=fopen($this->nombre,$this->modo);
		return $apuntador; 	
	}
	function leer($apuntador)
	{
		while(!feof($apuntador))
		{
			$linea=fgets($apuntador);
			list($ip,$tiempo_t)=split(" ",$linea);
			if($ip==$this->ip)
			{
				$mi_ip=$this->ip." ".$this->hora;
				$this->activos++;
			}
			else
			{
				if(strtotime($this->hora)>strtotime($tiempo_t)){
					$diferencia=strtotime($this->hora)-strtotime($tiempo_t);	
				}else{
					$diferencia=strtotime($tiempo_t)-strtotime($this->hora);
				}
 
 
 
				if($diferencia<$this->inactivo)
				{
					$tx=$tx.$ip." ".$tiempo_t."\n";
					$this->activos++;	
				}
			}
 
	}
		if($mi_ip=="")
		{
			$mi_ip=$this->ip." ".$this->hora;
			$this->activos++;
		}
		fclose($apuntador);
		return $introduce=$tx.$mi_ip;
 
	}
	function escribimos($usuarios)
	{
		$fp=fopen($this->nombre,"w");	
		fwrite($fp,$usuarios);
		fclose($fp);
 
 
	}
}
$usuarios=new Activos("usuarios.txt");
 
?> 

-- acoevil 4 Mayo 2009

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales