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

    Cercare una stringa in un file

    Ciao a tutti. Sto cercando senza riucirsci di trovare una parola all'interno di un file. Ovvero: ho un elenco di parole, es. (Romano, Roma, etc..), e devo trovare la parola Roma (che sarà posizionata nella riga x). Il mio problema è che usando il metodo strstr(nomefile, 'Roma'), mi va a stampare la posizione di "Romano" in quanto questo metodo va a trovare la prima occorrenza. Come posso risolvere ciò?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Cosa vuoi ottenere ? Facci un esempio.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Devo trovare la posizione della parola "Roma". Ma come detto in precedenza, con il metodo strstr() mi va a trovare la prima occorrenza e quindi, avendo prima altre parole che iniziano con "Roma.. come nel precedente esempio, mi va a trovare la posizione di "Romano" e non "Roma". Non so se mi sono spiegato bene..

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Ma cosa vuoi che ritorni ? Se c'è la parola o meno o altra cosa ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    La riga dove è situata la parola (è un file .text, dove ho eseguito un ciclo for.. etc..). Quindi mi va a trovare la riga della stringa "Romana" in qunto è situata prima della parola "Roma".

  6. #6
    Devo trovare la posizione della parola "Roma". Ma come detto in precedenza, con il metodo strstr() mi va a trovare la prima occorrenza e quindi, avendo prima altre parole che iniziano con "Roma.. come nel precedente esempio, mi va a trovare la posizione di "Romano" e non "Roma". Non so se mi sono spiegato bene..

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Prova questo. Non sono sicuro del funzionamento del calcolo della posizione.

    Codice PHP:
    <?php
    function posParola($string,$parola) {
     
    $len      strlen($parola);
     
     
    $pattrn   "/(\b$parola\b)/msi";
     
    $array    preg_split($pattrn $string);
     
     
    $arrayPos = array();
     
    $posCumul 0;
     for (
    $i=0;$i<count($array)-1;$i++) {
      
    $value      $array[$i];
      
    $posCumul  += strlen($value) + $len;
      
    $pos        $posCumul $len +1;
      
    $arrayPos[] = $pos;
     }
     return 
    $arrayPos;
    }
    $contenutoFile   file_get_contents('testo.txt');
    $contenutoFile   'roma roma roma caput mundi roma rinascens';
    $parolaDaCercare 'roma';
    $posizioni posParola($contenutoFile,$parolaDaCercare);
    if (
    count($posizioni) == 0) {
     print 
    "Parola $parolaDaCercare assente";
    } else {
     print 
    "Parola $parolaDaCercare trovata<br/>"
     foreach (
    $posizioni as $value) {
      print 
    "Posizione $value<br/>";
     }
    }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Ho diciamo risolto in un modo più semplice, grazie comunque

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Come hai fatto ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.