Visualizzazione dei risultati da 1 a 3 su 3

Discussione: keyword in grassetto

  1. #1

    keyword in grassetto

    Ho fatto una funzione che, quando faccio una ricerca, ingrassa le parole chiave trovate nel testo:
    Codice PHP:
    $q=$_GET["q"]; // parole chiave (anche più di una)

    function evidenzia($tringa){
    global 
    $q//ficco la variabile nella funzione
    $qer explode(" "$q); // BOOM
    foreach ($qer as $qq ) { $tringa=str_replace($qq"[b]$qq[/b]"$tringa);}; // ogni chiave che trovo nel testo, la ingrasso
    return $tringa;};

    // cerco nel database, recupero campi, ecc.

    // stampo risultati:
    echo evidenzia($testo); 
    funziona!! che bello!

    ==== Problema ====

    Se il testo é in formato html, rischio di mettere un tag nel tag:
    Se la parola chiave ($q) é "re", rischio che nel testo trovato, la funzione evidenzia mi restituisca:
    codice:
    HTML
    <a href="www.html.it">HTNL</a>
    spero che si veda coretto...

    ==== Soluzione ====
    Come faccio? Stavo pensando ad una funzione che dica:
    Se dopo l'occorrenza "ar" trovi un tag di chiusura prima di uno di apertura, non mettere il grassetto
    Oppure:
    Se prima dell'occorrenza "ar" trovi un tag di apertura prima di uno di chiusura, non mettere il grassetto
    (che poi, sostanzialmente é la stessa cosa... )

    ==== Aiuto ====
    C'é una funzione che mi permette questo?

    P.S. il tag B é deprecato. Meglio usare STRONG
    P.P.S. A me piace di più B

    ==== Parole chiave ====
    Evidenziare risultati di ricerca
    motore di ricerca
    chiavi evidenziate
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  2. #2

  3. #3
    Wow..
    Bellissimo blog, un vero vaso di pandora!
    Ho trovato tanti articoli interessanti, non so come ringraziarti.

    La funzione fa bene il suo dovere, seppure ho paura che, usandola in un ciclo su più chiavi di ricerca, prenderà molte risorse.
    Ho la sensazione che giocandoci un po potrei "alleggerirla",

    Mi studio meglio la funzione strncmp e provo.
    In ogni caso, proprio la soluzione che cercavo.
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

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.