Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Eseguire sostituzione di parte di una stringa mantenendo le maiuscole

    Buongiorno a tutti,

    anticipo che ho provato a cercare la soluzione ma non ho trovato soluzione in merito.

    Vi spiego:

    io ho una stringa che desidero cercare in un'altra stringa.
    Cos� desidero evidenziare il testo trovato nella stringa "di destinazione" mantenendo le rispettive maiuscole o minuscole del testo "di destinazione"

    Esempio:

    stringa="abc"
    destinazione="qwerAbCfg"
    output="qwerAbCfg"

    Conosco e uso le funzioni come str_ireplace, strcasecmp, substr_replace e le funzioni comuni per manipolare stringhe.
    Ho provato davvero molto ad usare varie soluzioni con queste funzioni ma non riesco a mantenere le maiuscole. Riesco solo ad evidenziare utilizzando il contenuto di "stringa", e quindi non mantenendo le maiuscole di "destinazione".

    Non conosco come usare le espressione regolari (preg_replace), ma cercando su internet ho capito che forse questo tipo di funzioni farebbero al caso mio. Ma non ho capito come usarle.

    Qualcuno potrebbe aiutarmi sul mio caso specifico?

    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    io farei una cosa del genere:

    Codice PHP:
    $string "qwerAbCfg";
    $search ="/abc/i";
    $matches = array();
    preg_match_all($search$string$matchesPREG_OFFSET_CAPTURE);

    $output ''
    $start 0;
    foreach(
    $matches[0] as $match){
        
    $output .= substr($string$start$match[1] - $start);
        
    $start += $match[1] - $start ;
        
    $output .= '<b>'.substr($string$match[1], strlen($match[0]) ).'</b>';
        
    $start += strlen($match[0]);
     }
    $output .= substr($string$start);
    echo 
    $output

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Io farei cosi...

    Codice PHP:
    <?php 
    $testo   
    " abc uno due Abc tre quattro ABC  xxxabCxxxxx";
    $cerca   "abc";

    $pattern "/($cerca)/msi";
    $testo2  preg_replace($pattern,"<b>\\1</b>",$testo);

    print 
    "prima : $testo";
    print 
    "<hr/>";
    print 
    "prima : $testo2";
     
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Io farei cosi...

    Codice PHP:
    <?php 
    $testo   
    " abc uno due Abc tre quattro ABC  xxxabCxxxxx";
    $cerca   "abc";

    $pattern "/($cerca)/msi";
    $testo2  preg_replace($pattern,"<b>\\1</b>",$testo);

    print 
    "prima : $testo";
    print 
    "<hr/>";
    print 
    "prima : $testo2";
     
    ?>
    effettivamente, mi pare meglio

  5. #5
    Ho provato.
    Funziona!
    Grazie mille, siete stati rapidissimi!

Tag per questa discussione

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.