Io farei così
Codice PHP:
<?php
// conterrà un elemento per ogni indirizzo che
// ha cliccato sul pulsante p1
$pulsante1 = array();
// conterrà un elemento per ogni indirizzo che
// ha cliccato sul pulsante p2
$pulsante2 = array();
// la variabile contenente il contatore del pulsante
// la passo per riferimento, così la posso modificare
// all'interno della funzione
function quanti_click( &$pulsante, $ip )
{
// se nell'array c'è già l'indirizzo dell'utente che sto considerando
if ( array_key_exists($ip, $pulsante) )
{
// aggiungo 1 click all'indirizzo
$pulsante[$ip] += 1;
}
else
{
// altrimenti aggiungo un nuovo elemento all'array
// la chiave dell'elemento è l'indirizzo
// il valore è il numero di click
$pulsante[$ip] = 1;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Conto il numero di click</title>
</head>
<body>
<h3>Conto il numero di click</h3>
<?php
$textfile = fopen("test.txt", "r"); //apro il file da contare
while ( $rigafile=fgets($textfile,1024) )
{
$campiriga = explode("|", $rigafile); //estraggo tutti i campi di riga
$pulsante = $campiriga[0]; //pulsante premuto
$indirizzo = $campiriga[2]; //indirizzo dell'utente
if ( $pulsante == 'p1' )
{
quanti_click( $pulsante1, $indirizzo );
}
else if ( $pulsante == 'p2' )
{
quanti_click( $pulsante2, $indirizzo );
}
}
foreach ( $pulsante1 as $key => $value )
{
echo "L'indirizzo $key ha cliccato $value volte sul pulsante 1<br>";
}
foreach ( $pulsante2 as $key => $value )
{
echo "L'indirizzo $key ha cliccato $value volte sul pulsante 2<br>";
}
?>
</body>
</html>