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!
Printable View
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!! :confused:
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
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";
}
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..
Ok funzionaaaaa!
Grazie a tutti x l'aiuto!
Ciaooooo!