Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    Sostituire parole differenza tra minuscole e maiuscole

    Scusate il titolo intanto..
    sto facendo un motore di ricerca ad un sito. prendo i dati da db, faccio tutto correttamente.
    ho deciso (di mia sponte..) nella pagina dei risultati, di fare che quando l'utente cerca una parola o più parole quando queste sono presenti nei risultati, questi diventino BOLD. bene. str_replace in un ciclo e funziona tutto.
    MA.
    Se cerco STAMPARE o stampare è diverso quando faccio il replace. perchè il motore sostituirà le parole in bold a seconda se l'utente ha cercato STAMPARE o stampare. NON E' UNA DIFFERENZA DI TROVARE I RISULTATI, ma solo quando sostituisce la stringa. Vorrei che se nel DB c'è scritto stampa o Stampa, sostituisse mettesse SOLO il bold. Mentre se l'utente ha cercato STAMPA la replace mette sì il bold ma "converte" il testo in maiuscolo

    grazie in anticipo a chi mi darà una mano

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    str_ireplace()

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    è lo stesso. ireplace fa sì che IL TESTO SORGENTE sia case_insensitive, ma il replace vero e proprio è identico

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    agevolo codice
    Codice PHP:
     $row_titolo $row_Autori['titolo'];
          
    $keys explode(" "$parola);
    for (
    $x 0$x count($keys); $x++) {
    //echo $keys[$x];
          
    $row_titolo str_ireplace($keys[$x],"<strong>" $keys[$x] . "</strong>"$row_titolo);

    }

          echo 
    $row_titolo
    dove $parola è ovviamente la stringa di testo che l'utente ha cercato

  5. #5
    Devi usare preg_replace con il modifier i, es:

    Codice PHP:
    $str preg_replace("/\b$parola\b/i""<strong>$0</strong>"$str); 

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ma sei un MOSTRO..
    CHAPEAU

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ho notato una cosa: se cerco stampa e ho la parola stampare, il record lo trova, ma non diventa bold.
    si può fare qualcosa o è impossibile?
    grazie comunque per l'aiuto finora

  8. #8
    Non ho capito bene, stampa e stampare sono due parole diverse, dovrebbe evidenziare stampare anche quando cerchi stampa? Cioe' piu' in generale evidenziare tutte le parole che cominciano con la stringa di ricerca?

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Cioe' piu' in generale evidenziare tutte le parole che cominciano con la stringa di ricerca
    sìììììì!!!
    ho modificato la preg così, togliendo le /b e sembra andare

    $str = preg_replace("/$parola/i", "<strong>$0</strong>", $str);
    controindicazioni?
    Ultima modifica di telegio; 14-05-2015 a 12:57

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.