• User

    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


  • User Attivo

    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]