Pagina 4 di 4 PrimoPrimo ... 234
Visualizzazione risultati 91 fino 105 di 105

Discussione: [php] parole cercate di colore diverso

  1. #91
    Guest

  2. #92
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    [...] E' probabile che non funzioni proprio il codice che ti ho scritto, ma secondo me ti complichi meno la vita.
    L'ho scritto eh

    Potresti lavorarci un pò su però come vedi è già un inizio che ti colori le lettere, altrimenti fai tutto con il primo codice e aggiungi delel espressioni regolari per i tag html...

  3. #93
    Guest

    Predefinito

    ci sto provando ma niente...
    questo e il codice
    Codice PHP:
    <?php
    $parola
    = mysql_real_escape_string(trim($_GET['key']));

    if(!empty(
    $parola)){
    if(
    $mysql = mysql_connect('localhost', 'zappi', '')){
    if(!
    mysql_select_db('my_zappi', $mysql)){
    die(
    'Errore: ' .mysql_error());
    }}else{
    die(
    'Errore: ' .mysql_error());
    }

    $array = array();
    $str = 'SELECT * FROM tabella WHERE ';
    $tok = strtok($parola, ' ');

    while(
    $tok !== false){
    array_push($array, $tok);
    $str .= 'testo LIKE \'%' .$tok. '%\'';
    $tok = strtok(' ');
    if(
    $tok !== false){
    $str .= ' || ';
    }}


    if(!(
    $query = mysql_query($str))){
    die(
    'Errore nella query: ' .mysql_error());
    }

    $numero_risultati = mysql_num_rows($query);
    echo
    '<div class="titolo_cerca">Risultati ricerca: ' .htmlentities($parola, ENT_QUOTES). '</div><br>' ."\n";
    echo
    '<div class="titolo_post">Tabella ' .$numero_risultati. '</div>' ."\n";
    echo
    '<table width="600" border="0" align="center">' ."\n";

    while(
    $cerca = mysql_fetch_array($query)){
    foreach(
    $array as $word){
    $find = array(
    '/\[b\](.*)\[\/b\]/',
    '/\[i\](.*)\[\/i\]/',
    '/\[u\](.*)\[\/u\]/',
    '/\[s\](.*)\[\/s\]/',
    '/\[h1\](.*)\[\/h1\]/',

    '/(\[url=)(.+)(\])(.+)(\[\/url\])/',
    '/\[img\](.*?)\[\/img\]/',
    '/(\[font=)(.+)(\])(.*?)(\[\/font\])/',
    '/(\[color=)(.+)(\])(.*?)(\[\/color\])/',
    '#\[code\](.*?)\[\/code\]#e',
    '/\[youtube\](.*)\[\/youtube\]/'
    );

    $cerca["testo"] = preg_replace($find, '', $cerca['testo']);
    $cerca["testo"] = str_replace($word, '<span style="background-color: #' .dechex(rand(0, 16777215)). ';">' .$word. '</span>', strip_tags($cerca['testo']));
    }


    echo
    '<tr>' ."\n". '<td class="titolo_post">' ."\n". $cerca['titolo'] ."\n". '</td>' ."\n". '</tr>';
    echo
    '<tr>' ."\n". '<td>' ."\n". $cerca['data'] ."\n". '</td>' ."\n". '</tr>';
    echo
    '<tr>' ."\n". '<td class="testo">' ."\n". $cerca['testo'] ."\n". '</td>' ."\n". '</tr>' ."\n";
    }
    echo
    '</table>';
    }
    ?>
    il problema secondo me e qui...
    Codice PHP:
    while($tok !== false){
    array_push($array, $tok);
    $str .= 'testo LIKE \'%' .$tok. '%\'';
    $tok = strtok(' ');
    if(
    $tok !== false){
    $str .= ' || ';
    }}
    con andrea
    abbiamo trovato questa soluzione
    Codice PHP:
    while($tok !== false){
    if(
    strlen($tok) == 1)
    array_push($array, ' '.$tok.' ');
    else
    array_push($array, $tok);
    $tok = strtok(" ");
    }
    ma non riesco a sistemare come dico io il codice

    biccheddu sai darmi una mano^^

  4. #94
    Guest

    Predefinito

    basta che usi str_replace
    Codice PHP:
    <?php

    $dove
    = "questa variabile contiene i risultati di una query";
    $key = $_GET['key'];
    $key2 = "<p style=\"color: red\">".$_GET['key']."</p>";
    echo
    str_replace($key,$key2,$dove);

    ?>

  5. #95
    Guest

    Predefinito

    si ma poi non funziona per le altre parole
    se scrivi
    questa+variabile
    funziona
    ma se scrivi questa+una
    no

    @andreafallico
    trova tu la soluzione...xDxD

  6. #96
    Guest

    Predefinito

    prova a vedere se così funziona modificando il nome della tabella e del campo nella query
    Codice PHP:
    <?php
    $parola
    = mysql_real_escape_string(trim($_GET['key']));
    $parola2 = "<p style=\"color: red\">".$parola."</p>";

    if(!empty(
    $parola)){
    if(
    $mysql = mysql_connect('localhost', 'zappi', '')){
    if(!
    mysql_select_db('my_zappi', $mysql)){
    die(
    'Errore: ' .mysql_error());
    }}else{
    die(
    'Errore: ' .mysql_error());
    }

    $sql = "SELECT * FROM tabella WHERE testo LIKE '%$parola%'";
    $q = mysql_query($sql) or die("errore nella query: ".mysql_error());

    while(
    $r = mysql_fetch_array($q))
    echo
    str_replace($parola,$parola2,htmlentities($r['testo']))."<br>";

    ?>

  7. #97
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    si ma poi non funziona per le altre parole
    se scrivi
    questa+variabile
    funziona
    ma se scrivi questa+una
    no

    @andreafallico
    trova tu la soluzione...xDxD
    Purtroppo la soluzione non è facile da trovare, hai visto il sito che mi avevi segnalato ha lo stesso problema!

  8. #98
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    si ma poi non funziona per le altre parole
    se scrivi
    questa+variabile
    funziona
    ma se scrivi questa+una
    no
    Non ho capito bene cosa significa. Potresti spiegarti meglio?
    Anche facendo un esempio.

  9. #99
    Guest

    Predefinito

    @andrea
    hai trovato la soluzione o no....
    il problema secondo me e dove ti ho detto io...^^

  10. #100
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Come ti ho detto prima è difficile trovare la soluzione.
    Ma perchè non utilizzi jquery, li evidenzia tutti allo stesso colore però è più semplice.

  11. #101
    Guest

    Predefinito

    per il fatto che è js...
    e non tutti hanno i programmi per leggerli...

    e poi in php era molto meglio credo...

  12. #102
    Guest

    Predefinito

    Come ti ho scritto, str_replace() può usare gli array per cambiare tutto! Se tratti tutto come un array risolvi in poche righe di codice usando explode() ed implode().

  13. #103
    Guest

    Predefinito

    poi fammi un esempio....

    ma colorerà cogli parola di un colore diverso come dici tu...

  14. #104
    Guest

    Predefinito

    L'ho postato prima!

  15. #105
    Guest

    Predefinito

    Vi posto il codice...
    Codice PHP:
    <?php
    $parola
    = mysql_real_escape_string(trim($_GET['key']));

    if(!empty(
    $parola)){
    if(
    $mysql = mysql_connect('localhost', 'zappi', '')){
    if(!
    mysql_select_db('my_zappi', $mysql)){
    die(
    'Errore: ' .mysql_error());
    }}else{
    die(
    'Errore: ' .mysql_error());
    }

    $array = array();
    $str = 'SELECT * FROM tabella WHERE ';
    $tok = strtok($parola, ' ');

    while(
    $tok !== false){
    array_push($array, $tok);
    $str .= 'testo LIKE \'%' .$tok. '%\'';
    $tok = strtok(' ');
    if(
    $tok !== false){
    $str .= ' || ';
    }}


    if(!(
    $query = mysql_query($str))){
    die(
    'Errore nella query: ' .mysql_error());
    }

    $numero_risultati = mysql_num_rows($query);
    echo
    '<div class="titolo_cerca">Risultati ricerca: ' .htmlentities($parola, ENT_QUOTES). '</div><br>' ."\n";
    echo
    '<div class="titolo_post">Tabella ' .$numero_risultati. '</div>' ."\n";
    echo
    '<table width="600" border="0" align="center">' ."\n";

    while(
    $cerca = mysql_fetch_array($query)){
    foreach(
    $array as $word){
    $find = array(
    '/\[b\](.*)\[\/b\]/',
    '/\[i\](.*)\[\/i\]/',
    '/\[u\](.*)\[\/u\]/',
    '/\[s\](.*)\[\/s\]/',
    '/\[h1\](.*)\[\/h1\]/',

    '/(\[url=)(.+)(\])(.+)(\[\/url\])/',
    '/\[img\](.*?)\[\/img\]/',
    '/(\[font=)(.+)(\])(.*?)(\[\/font\])/',
    '/(\[color=)(.+)(\])(.*?)(\[\/color\])/',
    '#\[code\](.*?)\[\/code\]#e',
    '/\[youtube\](.*)\[\/youtube\]/'
    );

    $cerca["testo"] = preg_replace($find, '', $cerca['testo']);
    $cerca["testo"] = str_replace($word, '<span style="background-color: #' .dechex(rand(0, 16777215)). ';">' .$word. '</span>', strip_tags($cerca['testo']));
    }


    echo
    '<tr>' ."\n". '<td class="titolo_post">' ."\n". $cerca['titolo'] ."\n". '</td>' ."\n". '</tr>';
    echo
    '<tr>' ."\n". '<td>' ."\n". $cerca['data'] ."\n". '</td>' ."\n". '</tr>';
    echo
    '<tr>' ."\n". '<td class="testo">' ."\n". $cerca['testo'] ."\n". '</td>' ."\n". '</tr>' ."\n";
    }
    echo
    '</table>';
    }
    ?>
    vedete se ci riuscite voi....
    vi prego datemi una mano...^^

Pagina 4 di 4 PrimoPrimo ... 234

Regole di scrittura

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