Visualizzazione risultati 1 fino 9 di 9

Discussione: Formattare tutte le occorrenze trovate

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito Formattare tutte le occorrenze trovate

    Salve,

    Nel mio sito, tempo fa, ho creato un piccolo motore di ricerca, che vorrei modificare in modo che: sottolinei, o colora, le parole identiche alla chiave di ricerca, senza tener conto che sia scritta in maiuscolo o in minuscolo

    Sono partito da questa semplice istruzione:

    Codice PHP:
    $risultato_ricerca = str_replace($key, "<font color=\"red\">" . $key . "</font>", $risultato_ricerca);
    Che colora di rosso tutte le parole, uguale alla parola cercata, contenuta nei risultati, ma se il formato di carattere ( maiuscolo e minuscolo ) sono identici, ma se sono diversi? come potrei fare?

    Ho provato a farlo utilizzando questa funzione, ma non riesco, esiste una funzione apposta o dovrei fare in altro modo?

    Non so se mi sono spiegato bene, ma non so proprio, almeno per ora, in che altro modo potrei spiegarmi.

    Sevenjeak
    Software developer and much more

  2. #2
    Guest

    Predefinito

    ponendo che funzioni... se ha php5 attivo:
    srt_ireplace()

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Scusa ma non ho avuto tempo di editare il mio post.

    Ho provato anche con la funzione str_ireplace(), e funziona, ma il risultato non è proprio quello che volevo.

    L'unico problema è che vorrei far rimanere i risultati dello stesso formato in qui sono ( i carattere minuscoli rimanessero minuscoli, ecc.. ), invece, come ho scritto nella funzione str_ireplace() hanno lo stesso formato della chiave di ricerca.

    Come fare per evitare questo?

    Sevenjeak
    Software developer and much more

  4. #4
    Guest

    Predefinito

    preg_replace() con una regex con modificatore "i"

    ... non chiedermi di farti la regex perchè sono impedito con quelle...

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Per regex intendi forse le espressioni regolari?

    Se si sfortunatamente anche io, dopo che le ho studiate più di una volta, ancora non le ho capite

    A dire la verità mi era passato per la mente l'idea che bisognava usarle, ma non ne ero del tutto sicuro.

    Cmq sto cercando di vedere come fare quello che vorrei con le espressione regolare, intanto se qualcuno ha la soluzione gli prego di postarla.
    Ultima modifica di sevenjeak : 19-03-2011 alle ore 10.06.50

    Sevenjeak
    Software developer and much more

  6. #6
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Mah, non capisco per quale motivo ci si debba sempre limitare al prototipo delle funzioni. Se qualcuno di buona volontà pubblica dei contributi, lo fa perchè spera che qualcuno li legga e ne faccia buon uso.

    Quindi ora apri la documentazione, str_ireplace, tira leggermente giù la scrollbar o premi F3, e scegli una delle numerose soluzioni proposte al tuo stesso problema per eventualmente farne successiva occasione di studio.

    Ciao!


    P.S: Ricorda di utilizzare soltanto forbici dalla punta arrotondata. Fatto?!

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Veramente già da prima che stavo osservando quella documentazione, ma non so, non riesco proprio a risolvere il mio problema.

    Sevenjeak
    Software developer and much more

  8. #8
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Io mi riferisco ai contributi utente, da qui in giù
    Come vedi ci sono soluzioni mirate, di diversa complessità.

    La più semplice, che utilizza poi la tecnica suggerita da miniscript, è riportata nel terzo post:

    Regarding maintaining the case of the find/replace for search-highlighting purposes:

    if the performance hit of a regular expression isn't a big problem, there's something like:
    Codice PHP:
    <?php
    function highlight_matches($find_text, $text) {
    return
    preg_replace("/($find_text)/i", '<span style="color:red">$1</span>', $text);
    }
    ?>

    Come vedi, c'è anche la fortuna di non doverne sapere molto in ambito di espressioni regolari :)

    Saluti!
    Ultima modifica di programmazioned : 19-03-2011 alle ore 18.40.45

  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    ok, grazie a tutti e due.

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •