Visualizzazione dei risultati da 1 a 10 su 30

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306

    Contare quanti click ha fatto un indirizzo

    Ciao a tutti ragazzi
    sono diversi giorni che mi rompo la testa su questo esercizio.
    Non ce la faccio più spero in un vostro aiuto.

    Nel file test.txt ho una lista del genere

    codice:
    p1|26/07/16|127.0.0.1|12:40:17
    p2|26/07/16|127.0.0.1|12:40:19
    p2|26/07/16|127.0.0.1|12:40:21
    p2|26/07/16|127.0.0.1|12:40:22
    p1|26/07/16|127.0.0.1|12:40:24
    p2|26/07/16|127.0.0.1|12:30:18
    p1|26/07/16|188.114.103.34|12:30:21
    p1|26/07/16|173.245.56.233|12:30:23
    p2|26/07/16|173.245.54.238|12:30:25
    p1|26/07/16|188.114.103.34|12:33:23
    p1|26/07/16|188.114.103.34|12:33:26
    p2|26/07/16|188.114.103.34|12:33:28
    p1|26/07/16|188.114.103.34|12:51:24
    p2|27/07/16|173.245.56.233|06:00:37
    p2|27/07/16|173.245.54.238|06:00:37
    p1|27/07/16|173.245.63.234|06:00:38
    p1|27/07/16|173.245.54.234|06:00:38
    p2|03/08/16|173.245.54.238|06:01:51
    p1|03/08/16|173.245.54.234|06:01:51
    p2|03/08/16|173.245.56.233|06:02:26
    p1|03/08/16|173.245.63.234|06:02:27
    p2|03/08/16|162.158.104.227|13:15:08
    p1|03/08/16|162.158.104.227|13:28:53
    p1|06/08/16|127.0.0.1|12:36:42
    p2|06/08/16|127.0.0.1|12:36:47
    p2|09/08/16|127.0.0.1|15:16:11
    p1|09/08/16|127.0.0.1|15:17:52
    p2|09/08/16|127.0.0.1|15:18:19
    p1|09/08/16|127.0.0.1|15:18:21
    in cui p1 e p2 sono i tasti cliccati dagli utenti.
    Sono riuscito a calcolare il numero totale di click su p1 e su p2, ma voglio conoscere ogni indirizzo ip quanti click ha fatto su p1 e quanti su p2.

    Non so quale sia meglio come logica di pensiero e spero in un vostro aiuto in tal senso: ho iniziato con l'usare un semplice ciclo while per poter arrivare al risultato; poi mi è venuto in mente che potessi utilizzare anche una funzione che scorra anche lei il file test.txt. ma cmq non ci riesco.

    La cosa fondamentale che mi interesse è come devo muovere il cervello per tentare di risolvere problemi del genere e perchè.

    Questo è il mio codice:

    forse ci sono un po' troppi echo ma volevo rendermi conto



    codice:
    
    <!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 
    $i=$nump1=$nump2='0';
    
    
    $indirizzo_pres=$indirizzo_pres2=$indirizzo_div=$totclicpres1=$totclicpres2=$totclicdiv1=$totclicdiv2='0';
    $indirizzop1='0';
    $indirizzop2='0';
    $indirizzo_trovato1=$indirizzo_trovato2='0';
    
    
    
    
    
    
    $textfile = fopen("test.txt", "r"); //apro il file da contare
    
    
    
    
    while ( $rigafile=fgets($textfile,1024) ) {
        $campiriga = explode("|", $rigafile); //estraggo tutti i campi di riga
        $click=$campiriga[0]; //prelevo da ogni riga il campo relativo al click
        $indirizzo1=$campiriga[2]; //prelevo da ogni riga il campo relativo all'indirizzo
    
    
        if(isset($indirizzo1)){  /*conteggio il numero di click totali sui due pulsanti*/
            if($click== "p1"){$nump1=$nump1+1; $i++;$indirizzop1=$indirizzo1;}
    
    
            if($click=="p2"){$nump2=$nump2+1;$i++;$indirizzop2=$indirizzo1;}
        }
        if($indirizzop1<>$indirizzop2){
            $indirizzo_trovato1=$indirizzop1;
            $indirizzo_trovato2=$indirizzop2;
        }
        quanti_click($indirizzo1,$indirizzop1,$indirizzop2);
    
    
    
    
    }//----------------chiudo while----------------------------------
    
    
    echo"<br>il numero di click totale su p1 è".$nump1 ;
    echo"\n<br>il numero di click totale su p2 è".$nump2;
    echo"<br>ccccccc$indirizzo_div<br>";
    echo"<br>$indirizzo1<br>";
    
    
    
    
    echo"<br>l'indirizzo  $indirizzo_pres ha fatto questi click sul primo $totclicpres1\n" ;
    echo"<br>l'indirizzo  $indirizzo_pres ha fatto questi click sul secondo $totclicpres2\n" ;
    
    
    echo"<br>l'indirizzo  $indirizzo_pres2 ha fatto questi click sul primo $totclicdiv1\n" ;
    echo"<br>l'indirizzo  $indirizzo_pres2 ha fatto questi click sul secondo $totclicdiv2\n" ;
    
    
    
    
    /*-----------------FUNZIONE----------------------------*/
    
    
    function quanti_click($indirizzo,$indirizzo_sceltap1,$indirizzo_sceltap2){
        
    global    $indirizzo_pres;    
    global    $indirizzo_pres2;    
    global    $totclicpres1;    
    global    $totclicpres2;
    global $totclicdiv1;
    global $totclicdiv2;
    global $indirizzo_div;
    $indirizzo_pres=$indirizzo_pres2=$indirizzo_div='0';
    $totclicpres1=$totclicpres2=$totclicdiv1=$totclicdiv2='0';
    
    
    
    
    
    
    
    
        $textfile = fopen("test.txt", "r"); //apro il file da contare
        
        
        while ( $rigafile=fgets($textfile,1024) ) {
            $campiriga = explode("|", $rigafile); //estraggo tutti i campi di riga
            $click=$campiriga[0]; //prelevo da ogni riga il campo relativo al click
            $ind=$campiriga[2]; //prelevo da ogni riga il campo relativo all'indirizzo
        
                if(($indirizzo_sceltap1==$ind)){
                    
                        if($click=="p1"){$totclicpres1=$totclicpres1+1;
                        $indirizzo_pres1=$indirizzo_sceltap2;}                    
                }else{
                    $totclicdiv1=$totclicdiv1+1;
                    $indirizzo_pres2=$indirizzo_sceltap2;
                }
        
            
                if($indirizzo_sceltap2==$ind){
                    
                    if($click=="p2"){$totclicdiv2=$totclicdiv2+1;
                    $indirizzo_pres=$indirizzo_sceltap2;
                    }
                    
                }    else{$totclicdiv2=$totclicdiv2+1;
                $indirizzo_pres2=$indirizzo_sceltap2;}
        
            
            
            
            
            
    
    
        }//----------------chiudo while----------------------------------
        
    }//chiudo funzione
    
    
    ?>
    
    
    </body>
    </html>



    La funzione quanti_click() aveva in precedenza anche quest'altra forma, ma cmq non dava i risultati sperati
    codice:
    function quanti_click($indirizzo){
    
    
    
    
        //definisco la variabili contatore
        
        global $totclicpres1;     //$totclicpres1='0';
        global $totclicpres2;    //$totclicpres2='0';
        
        global $totclicdiv1;     //$totclicdiv1='0';
        global $totclicdiv2;    //$totclicdiv2='0';
        global $indirizzo_pres2;
        global $indirizzo_pres3;
        
        
        global $indirizzo_pres;
        global $indirizzo_div;
        global $click;
        global $totclicdivvvv1;
        global $totclicdivvvv2;
        global $i;
        global $condizione1;
        
        $textfile = fopen("test.txt", "r");
        while ($rigafile=fgets($textfile,1024) ) {
                    
            $campiriga = explode("|", $rigafile);
            $ind=$campiriga[2];  //stesso indirizzo del while fuori funzione
        $i=0;
        
        
        if($indirizzo==$ind){$indirizzo_pres=$indirizzo;}
        if($indirizzo<>$ind){$indirizzo_pres2=$indirizzo;}
        
            if($indirizzo_pres){
                if($click=="p1"){$totclicpres1=$totclicpres1+1;}
                if($click=="p2"){$totclicpres2=$totclicpres2+1;}
                }
        
            if($indirizzo_pres2){
                if($click=="p1"){$totclicdiv1=$totclicdiv1+1;}
                if($click=="p2"){$totclicdiv2=$totclicdiv2+1;}            
            }
        }//chiudo while---------------------------------
        fclose($textfile);
        
    }//chiudo funzione--------------------------------------------------
    Ultima modifica di Alfoxx; 11-08-2016 a 17:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.