Ciao a tutti,
sto cercando uno script php x fare una ricerca in un file:
cioe' nel file db.txt ci sono delle info x ogni riga.
io in un box cerco una parola e lo script mi riposta tutta la riga...
Si puo' fare?
Ciao!
Ciao a tutti,
sto cercando uno script php x fare una ricerca in un file:
cioe' nel file db.txt ci sono delle info x ogni riga.
io in un box cerco una parola e lo script mi riposta tutta la riga...
Si puo' fare?
Ciao!
certo che si può fare!!
crea un file così e chiamalo cerca.php
Codice:<?php $key=$_POST[key]; $file=file("db.txt"); $arr_t=array(); //cerco la chiave all'interno del file foreach($file as $v){ $arr=explode(" ",$v); if(in_array($key,$arr)){ $arr_t[]=$v; } } //stampo tutte le righe contenenti la chiave cercata foreach($arr_t as $v_t){ echo "$v_t<br>\n"; } ?>
e poi crei un file con il box in cui inserire la chiave da ricercare:
Codice:<form action="cerca.php" method="post"> <input type="text" name="key"> <input type="submit" value="cerca"> </form>
così dovrebbe andare..
ciao
No, non funziona...
il risultato della ricerca e' : <html><body></body></html>...
ciao
come no!!
l'ho appena provato e va..
cmq nel file db.txt devi lasciare uno spazio tra una parola e l'altra..
prova un po..
ciao
Prova qui'
ho fatto log.php con il box di ricerca,
cerca.php con lo script
e log.txt con le parole
in log.txt dovrebbe esserci scritto qlkosa tipo:
parola1 parola2 parola3 parola4
non funziona perchè hai utilizzato il tasto "tab" per separare le chiavi..
se avessi utilizzato semplicemente la barra spaziatrice funzionerebbe..
comunque funziona con questo codice:
in pratica ho sostituito lo spazio " " con il carattere di tabulazione "\t" dentro l'explode.. dipende da cosa vuoi usare per separare le chiavi..Codice:<?php $key=$_POST[key]; $file=file("db.txt"); $arr_t=array(); //cerco la chiave all'interno del file foreach($file as $v){ $arr=explode("\t",$v); if(in_array($key,$arr)){ $arr_t[]=$v; } } //stampo tutte le righe contenenti la chiave cercata foreach($arr_t as $v_t){ echo "$v_t<br>\n"; } ?>
ciao
Ultima modifica di jarkless : 20-11-2005 alle ore 16.52.49
Ok, non me ne ero accorto di aver usato i tab... a me va bene con i spazi, ora funziona!
C'e' solo un problema come puoi vedere da log.txt le parole sono molto spaziate ma il risultato mi da una spaziatura minima... perche'?
Dovresti trasformare gli spazi in
Codice PHP:
foreach($arr_t as $v_t){
$v_t=str_replace(' ', ' ', $v_t);
echo "$v_t<br>\n";
}
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
ti da una spaziatura minima perchè in html anche se inserisci più spazi ne vale solo uno.. per inserire ulteriori spazi devi utilizzare per ogni spazio in più..
sostituisci l'ultima parte dello script con questa:
Codice://stampo tutte le righe contenenti la chiave cercata foreach($arr_t as $v_t){ $v_t=str_replace(" "," ",$v_t); echo "$v_t<br>\n"; }
prova un po..
ciao
EDIT:
funcool m' hai fregato x un minuto..
Ultima modifica di jarkless : 20-11-2005 alle ore 17.09.52
Ok funzionaaaaa!
Grazie a tutti x l'aiuto!
Ciaooooo!
Ultima modifica di phpone : 20-11-2005 alle ore 17.17.12