Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Replace

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220

    Replace

    Ciao a tutti,
    vorrei sapere come fare il replace di una stringa in modo che contenga solo questi caratteri abcdefghijklmnopqrstuvwxyz0123456789 (nel caso di caratteri speciali li omette), che non permetta di usare lettere maiuscole , e che sostituisca gli spazi con un underscore.

    esempio...

    La stringa originale " CiaO coMe staI? " dovrebbe diventare cosi: " ciao_come_stai "

    Come si fa?

  2. #2
    Ciao, e' da tanto tempo che non scrivo su questo forum, comunque voglio aiutarti, anche se la risposta e' semplice e potresti trovarla anche da solo



    Codice PHP:
    <?php
    $stringa 
    =  " CiaO coMe staI? ";
    //Intanto converti tutto in minuscolo e togli gli spazi finali e iniziali:
    $stringa strtolower(trim($stringa));
    //Poi sostituisci gli spazi con gli underscore:
    $stringa str_replace(" ","_",$stringa);
    //Per ultimo i caratteri speciali li togli:
    $caratteri_speciali = array('?','!','|','.',',','-');
    $stringa str_replace($caratteri_speciali,"",$stringa);
    echo 
    $stringa;
    ?>
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  3. #3
    Quella che ti ho postato sopra a dire il vero e' migliorabile, quando togli i caratteri che non siano lettere o numeri, con le espressioni regolari e l'uso della funzione preg_replace(), pero' ora non mi va di scrivere un'espressione regolare, sono troppo indaffarato.
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  4. #4
    $stringa = " C1aO coMe st4I? ";
    $stringa = strtolower( preg_replace( "/(?i)([^a-z0-9]+)/", "", $stringa ) );
    echo $stringa; // c1aocomest4i








    Originariamente inviato da sanbiv
    pero' ora non mi va di scrivere un'espressione regolare, sono troppo indaffarato.
    "/(?i)([^a-z0-9]+)/" :rollo:


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    $stringa = " C1aO coMe st4I? ";
    $stringa = strtolower( preg_replace( "/(?i)([^a-z0-9]+)/", "", $stringa ) );
    echo $stringa; // c1aocomest4i









    "/(?i)([^a-z0-9]+)/" :rollo:


    Grazie di tutto ma l'esressione non serviva a me
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  6. #6
    Originariamente inviato da sanbiv
    Grazie di tutto ma l'esressione non serviva a me
    infatti ho risposto a djteschio, tu non c'entri niente ... solo che dire "non ho tempo" quando sono 8 caratteri mi ha fatto sorridere
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Grazie andr3a, funziona benissimo!
    Dove posso trovare una sorta di guida per principianti sulle espressioni regolari?
    Vorrei cominciare a capirci qualcosa!!!

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    think simple think ringo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.