• 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]