Trovare parola in un file .text

di il
1 risposte

Trovare parola in un file .text

Allora, sto cercando di trovare una parola in un file .text. Il mio problema è che avendo delle parole nel file text come questo esempio,

es.
A001 ROMA
A002 ABANO TERME

se trovo "ABANO TERME" mi restituisce "A002", se trovo "ROMA" mi restituisce "NO". Ho notato che se aggiungo una terza riga, esempio:

A001 ROMA
A002 ABANO TERME
A003 VERONA

e cerco nuovamente "ABANO TERME", questa volta mi restituisce "NO", e ovviamente se vado a cercare la parola "VERONA", mi restituisce il corrispondente codice.. e cosi via.. Perchè?
<?php
//$comuneNascita = "ABANO TERME";
$comuneNascita = "ROMA";

function codiceCatastale($comuneNascita) {
    $comuni = file('prova.txt'); 
    
    foreach($comuni as $comune) {         
        $arrayCodiceComune = explode("    ", $comune);
        
        //print_r($arrayCodiceComune);
        //echo "<br/>";

        if ($comuneNascita !== $arrayCodiceComune[1]) {
            echo "NO<br/>"; 
            continue;
        } else {
            echo $arrayCodiceComune[0];
            break;
        }
    }
}

codiceCatastale($comuneNascita);
?>

1 Risposte

  • Re: Trovare parola in un file .text

    Ciao,
    allora inizialmente premetto che avendo letto il tuo post mi pare di capire che nel file .txt i codici dai nomi dei comuni sono separati da un tab e non da un singolo spazio...
    se questa premessa è giusta ecco il codice:
    
    foreach($comuni as $comune) {         
            $arrayCodiceComune = explode("\t", $comune);
           
            //print_r($arrayCodiceComune);
            //echo "<br/>";
    		echo "Giro - ".print_r($arrayCodiceComune)."<br/><br/>";
    	
            if ($comuneNascita != ltrim(rtrim($arrayCodiceComune[1]))) {
                echo "NO<br/>";
                continue;
            } else {
                echo $arrayCodiceComune[0];
                break;
            }
        }
    il parametro "\t" su explode dice di separare il tab invece degli spazi, poi come vedi ho fatto semplicemente un rtrim ed un ltrim per sicurezza nel caso ci siano spazi iniziali o finali che diano problemi.. xd
Devi accedere o registrarti per scrivere nel forum
1 risposte