Originariamente inviato da tonyva
Ho modificato in questo modo lo script:
<?php
$array=file('test.txt'); //file di testo da cui leggere
$frase=$_POST['stringa']; //nome inserito in un modulo di una pag.htm
$lines = file('test.txt');//legge le linee
$key = array_search($frase, $array);//cerca la chiave
echo $lines[$key];//mi riporta solo la chiave corrispondente
?>
Ora mi cerca il valore che io scrivo nel campo modulo ma io vorrei che mi riportasse tutta la riga anche se io nel modulo scrivo solo parte di essa.
ESEMPIO se una riga del mio file di txt è:
MARIO ROSSI 0333-333333
Io vorrei che cercando solo Mario rossi mi riporti come risultato :
MARIO ROSSI 0333-3333333
Come si puo' fare?
Certo, con le espressioni regolari... le ho imparate da poco, ma questa funziona a dovere...
codice:
<pre><?
$ricerca = "MARIO ROSSI";
$a = "
MARIO ROSSI 1234567
PIPPO PIPPA 7654321";
preg_match_all("/$ricerca(.+)/ui", $a, $array);
print_R($array);
?></pre>
Ti spiego:
con quella espressione regolare, tu cerchi la parola $ricerca + un numero di caratteri non definito, può anche succedere che preg_match_all trovi più risultati o solo uno, in ogni caso restituisce un array numerico, in questo caso $array. Se ti servono consigli sull'argomento posta e ti aiuterò!