Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ricerca di una stringa in un archivio di testo

    ciao a tutti,

    premetto che la mia conoscenza di php e' infima, pero' sto cercando di fare uno script che faccia queste operazioni:

    detettare l'IP del visitatore
    verificare se l'IP e' presente o no in un file di testo
    restituire un 1 se e' presente uno 0 se non e' presente

    ho quindi pensato di fare:

    codice:
    //catturare l'IP del visitatore (spider o umano)
    $ip=$_SERVER["REMOTE_ADDR"]
    //aprire l'archivio (che contiene una serie di IP)
    $archivio = fopen($archivio,"w");
    ...
    adesso il punto e' cercare se l'IP e' contenuta nel file "archivio", mi sembra che la funziona piu' adatta per fare questa operazione e' foreach pero' non ne sono sicuro in quanto viene trattata insieme agli array, dovrei quindi trasformare la variabile ip in un array (anche se e' uno solo)

    quindi la funzione si chiuderebbe con una variabile (chiamiamola "spider" uguale a 1 se l'IP esiste nell'archivio oppure 0 se non esiste

    il file nel quale devo effettuare la ricerca, e' strutturano in questo modo (non so se verametne ha una struttura oppure no)

    #SE Abacho
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    srv-ze-webdb7.tricus.net
    193.110.40.83
    #UA AbachoBOT
    srv-ze-robot1.tricus.net
    193.110.40.87
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    srv-ze-robot2.tricus.net
    193.110.40.88
    #UA BlitzBOT@tricus.net
    srv-ze-robot4.tricus.net
    193.110.40.90
    #UA AbachoBOT
    srv-ze-robot8.tricus.net
    193.110.40.94
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    srv-ze-robot12.tricus.net
    193.110.40.98
    #UA tricusBOT@tricus.net (Mozilla compatible)
    srv-ze-host10.tricus.net
    193.110.40.130
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    193.110.40.145
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    193.110.40.152
    #UA BlitzBOT@tricus.net (Mozilla compatible)
    193.110.40.153

    qualcuno mi potrebbe dare una mano?

    grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Attenzione
    Innanzitutto se apri un file con fopen($file,"w") il contenuto viene immediatamente cancellato, poichè stai aprendo il file in SCRITTURA
    Quindi PRIMA, apri il file in lettura con
    $fp = fopen($file,"r")

    lo leggi con
    $contenuto = fread($fp, filesize($file));

    poi lo chiudi
    fclose($fp);

    Effettui la tua analisi su $contenuto, eventualmente aggiungendovi altre righe con

    Dopo di che lo apri in scrittura, scrivi e chiudi
    $fp = fopen($file,"w");
    fwrite($fp,$contenuto);
    fclose($fp);


    Comunque:
    il file DEVE avere una struttura e DEVI saperla in anticipo, altrimenti non sai dove reperire l'informazione

    P.S.
    Se la struttura che hai sei certo essere quella puoi leggere il contenuto con
    $arraycontenuto=file($file);
    che ti da il contenuto già separato per righe (una riga per ogni elemento dell'array

  3. #3
    si, effettivamente mi sono sbagliato, il file lo voglio aprire solo in lettura, non in scrittura
    non capisco pero' perche' dovrei utilizzare due variabili per aprire l'archivio, in quanto (nel mio caso) so che l'archivio esiste e dov'e ubicato
    quindi, ricapitolando:


    codice:
    //catturare l'IP del visitatore (spider o umano)
    $ip=$_SERVER["REMOTE_ADDR"]
    //aprire l'archivio (che contiene una serie di IP)
    $elencoip = fopen(archivio,"r");
    //leggere l'archivio
    $arraycontenuto=file($elencoip);
    pero' mi manca sempre la funzione giusta per verificare se $ip esiste in $arrayarchivio e dargli un valore 1 se trovata o valore 0 se non trovata

    poi chiudendo lo script
    codice:
    fclose($elencoip);

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.