Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Evidenziare senza sostituire parola

    ciao ragazzi ho una funzione che data in ingresso un testo ed una keyword da ricercare, ti evidenzia tutte le occorrenze della parola nel testo ma ho un problema...ovvero la parola mi viene sostituita con quella in ingresso data come keyword..come faccio a lasciare quella originale?

    La funzione è questa:
    Codice PHP:
    <?php
    # funzione che evidenzia il testo che viene dato in input e ti restituisce il numero di occorrenze trovate
    function hightlight($str$keywords '')
    {
        
    $valueToReturn=array();

        
    $the_count 0;
        
    $keywords preg_replace('/\s\s+/'' 'strip_tags(trim($keywords))); // filter
        

        
    $style_i 'highlight_important';

        
    /* Apply Style */

        
    $var '';
      
        foreach(
    explode(' '$keywords) as $keyword)
        {
            
    $replacement "$keyword";    #"<span class='".$style."'>".$keyword."</span>";
            
    $var .= $replacement." ";
            
    $str str_ireplace($keyword$replacement$str);
        }
      
        
    /* Apply Important Style */
      

        
    $str str_ireplace(rtrim($var), '[b]'.$keywords.'[/b]'$str$count);
        
    $the_count $count $the_count;
        
    #echo"trovate num $the_count occorrenze
    ";
        

        
    $valueToReturn[] = $str;
        
    $valueToReturn[] = $the_count;
        
        return 
    $valueToReturn;
    }

    ?>

  2. #2
    Sinceramente non capisco ciò che vuoi dire, come fai a dire che le parole vengono sostituite? E poi quali parole dovrebbero venire sostituite?
    Lo script cerca nella stringa in input una parola chiave e se la trova la evidenzia, quindo non capisco cosa vuoi dire con "sostituisce", sostituisce la parola con la parola stessa?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Il fatto è che se nella stringa ho "ciao mamma vado a casa" e come keyword inserisco "MaMmA" poi mi ritorna la stringa

    "ciao MaMmAvado a casa"

    con MaMmA evidenziata ma scritta nel modo in cui l'ho cercata e non nel modo originale...

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    Su due piedi mi verrebbe da consigliarti di dare uno stile univoco alla key trovata.
    Potresti trasformare la key in tutto maiuscolo o tutto minusolo:
    Codice PHP:
        $str str_ireplace(rtrim($var), '[b]'.strtolower($keywords).'[/b]'$str$count); 
    oppure
    Codice PHP:
        $str str_ireplace(rtrim($var), '[b]'.strtoupper($keywords).'[/b]'$str$count); 
    non so se puoi mantenere esattamente lo stile originale della key cercata

  5. #5
    Mmm così è una soluzione che fa da "toppa" e che utilizzerei nel caso di essere sicuro che non si possa fare una cosa del genere...Ma sinceramente mi sembra strano che non ci sia un modo...

    Nelle regular expression il modo c'è,possibile che nessuno abbia mai avuto la necessità di fare una cosa del genere...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.