Visualizzazione dei risultati da 1 a 8 su 8

Discussione: str_replace

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52

    str_replace

    ciao a tutti,
    Ho scritto un motore di ricerca che funziona abbastanza bene, tre le opzioni vi č quella di restituire in grassetto le chiavi di ricerca nel risultato:
    Codice PHP:
    str_replace("$chiave""[b]$chiave[/b]"stripslashes(htmlspecialchars($row->testo))); 
    Ora se viene cercata una singola chiave (ad es.: "parola") il replace funziona correttamente, ma se vengono inserite pių chiavi (ad. es.: "pių parole") o se la chiave viene trovata con l'iniziale maiuscola (ad es.: "Parola") il replace non funziona.

    Grazie 1000 in anticipo

  2. #2
    Allora, se vengono inserite pių chiavi devi esplodere la stringa in base al carattere spazio in questo modo:

    $words = explode( ' ' , $string ) ;

    dove string č la query di ricerca.

    Una volta esplosa fai un bel foreach in questo modo:

    Codice PHP:
    foreach ( $words as $word ) {
        
    $text str_ireplacestrtolower$word ) , '[b]' $word '[/b]' $text ) ;

    In questo modo verranno sostituite tutte le parole indipendentemente dal fatto che esse siano maiuscole o minuscole.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick č mircov e non mirco!!!

  3. #3
    www.php.net/str_ireplace non č sensibile alle minuscole o maiuscole (solo per php > 5)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52
    Infatti in locale mi funziona, in remoto (php 4.4.2) no, peccato perchč la soluzione proposta da mircov sarebbe ottima (e lo ringrazio)

  5. #5
    Originariamente inviato da noram
    Infatti in locale mi funziona, in remoto (php 4.4.2) no, peccato perchč la soluzione proposta da mircov sarebbe ottima (e lo ringrazio)
    Sarebbe il caso di passare ad un hoster che abbia installato php5 appena possibile!!!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick č mircov e non mirco!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52
    Per mio conto ci avevo giā pensato, ma per questo script lavoro sull'hosting di un cliente

  7. #7
    prova cosė:
    codice:
    $words = '/\b('.preg_replace('/(?<!^)[\s:.,]+(?!$)/','|',$words).')\b/i';
     $tuo_testo = preg_replace($words,'$1',$tuo_testo);
    La prima preg_replace costruisce la regexp che viene eseguita nella seconda.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    52
    Perfetto AnĒkin! Funziona a dovere!
    Siete stati tutti gentilissimi, grazie!

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.