Visualizzazione risultati 1 fino 8 di 8

Discussione: ricerca di una parola all'interno di un file di testo

  1. #1
    Data registrazione
    26-10-2008
    Messaggi
    171

    Predefinito ricerca di una parola all'interno di un file di testo

    ragazzi, se ho un file ( prova.txt) con dentro del codice, non importa di che tipo, e volessi una funzione che mi permetta di cercare all'interno del file ( o della variabile se lo includo in una) tutte le parole che corrispondono ad una parola scelta, e che mi posizioni il puntatore all'inizio della parola, come posso fare? Grazie!!

  2. #2
    darksnake1992 non è connesso Neofita
    Data registrazione
    09-03-2009
    Messaggi
    17

    Predefinito

    non puoi posizionare nessun puntatore ma estrarre i dati.
    Utilizzando le regex oppure while+feof+fgets
    Ultima modifica di darksnake1992 : 10-03-2009 alle ore 17.16.57

  3. #3
    Data registrazione
    26-10-2008
    Messaggi
    171

    Predefinito

    cosa? hai degli articoli? :D grazie!!!

  4. #4
    darksnake1992 non è connesso Neofita
    Data registrazione
    09-03-2009
    Messaggi
    17

    Predefinito

    Non credo ce ne siano, anche perchè il tutto dipende da come salvi i dati nel tuo file e da come li vuoi estrarre... se ciò che devi estrarre sono variabili allora consiglio le regex+preg_match+foreach+fopen.
    Altrimenti fgets.

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,056

    Predefinito

    Così è molto più semplice:
    1) estrai il contenuto del file di testo con file_get_contents()
    2) usi la funzione preg_match() o preg_match_all() per trovare la prima o tutte le occorrenze della tua parola. Usa la RegExp dell'esempio #2 di preg_match()...

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    L'avatar di tryphpnuke
    tryphpnuke non è connesso Altervistiano Junior
    Data registrazione
    17-09-2005
    Residenza
    Qui. Non mi vedi?
    Messaggi
    567

    Predefinito

    Codice PHP:
    $fCont file_get_contents("ciaociao.txt");
    $toSrc "stringa da cercare";

    $posizione strpos($fCont$toSrc);

    if (
    $posizione === false):
        
    // non trovato..
    else:
        
    // trovato in posizione {$posizione}..
        // d'ora in poi, per qualunque cosa tu debba fare, usi come posizione di partenza proprio $posizione..
    endif; 

  7. #7
    Data registrazione
    26-10-2008
    Messaggi
    171

    Predefinito

    e nel caso ci fossero più volte la stessa parola, prende solo la prima che trova?

  8. #8
    L'avatar di tryphpnuke
    tryphpnuke non è connesso Altervistiano Junior
    Data registrazione
    17-09-2005
    Residenza
    Qui. Non mi vedi?
    Messaggi
    567

    Predefinito

    nel mio codice, sì.. era questo che volevi, no?

    [edit] se vuoi trovare anche la seconda, la terza, .. occorrenza fai così:
    Codice PHP:
    $fCont file_get_contents("ciaociao.txt");
    $toSrc "stringa da cercare";

    $posizioni = array();  // questo array conterrà tutte le posizioni trovate..

    do
    {
        
    $pos strpos($fCont$toSrc, (count($posizioni) > 0) ? ($posizioni[count($posizioni)] + 1) : 0);  // questo cerca la sottostringa $toSrc nella stringa $fCont a partire dalla posizione successiva all'ultima trovata..
        
    if ($pos !== false)
            
    $posizioni[] = $pos;  // se ha trovato qualcosa lo mette nell'array..
    } while ($posizione !== false);

    print_r($posizioni);  // stampa l'array a video.. qui chiaramente modifichi come ti pare.. 
    spero che funzioni..!
    Ultima modifica di tryphpnuke : 12-03-2009 alle ore 16.12.05

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •