- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema con foreach
-
Problema con foreach
Salve, sto cercando un modo per rendere in bold le parole chiave che appaiono nei risultati di ricerca, in un piccolo motore di ricerca che sto creando...
- $frow["descrizione"] rappresenta i record della colonna 'descrizione' nei quali sono state trovate parole chiave;
- $keys rappresenta invece l'array contenente le parole chiave inserite nel form di ricerca;
$words = $frow["descrizione"];
foreach ($keys as $key) {
$words = strip_tags($words);
$words = str_replace($key,"<span class='bold'>".$key."</span>",$words);
}Quello che ottengo da questo codice è di avere in bold sempre e solo l'ultima parola chiave inserita.
Ad esempio se ricercassi "ciao a tutti", otterrei in bold solo "tutti"...Cosa sbaglio? :bho:
Grazie anticipatamente
-
Ciao,
succede perchè ad ogni ciclo del foreach richiami la funzione strip_tags, che appunto rimuove i "bold" messi nei cicli precedenti.
Sposta quell'istruzione fuori dal ciclo:
[PHP]$words = $frow["descrizione"];
$words = strip_tags($words);
foreach ($keys as $key) {
$words = str_replace($key,"<span class='bold'>".$key."</span>",$words);
}
[/PHP]