_SDinfo 3 Denunciar post Postado Dezembro 23, 2011 Tenho um texto que carrega vários caracteres especiais, tais como (|\/;:,.)(*&%$#!-^) gostaria de substituir qualquer simbolo do texto por um (_). Como fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 23, 2011 Quais caracteres você quer permitir? Compartilhar este post Link para o post Compartilhar em outros sites
_SDinfo 3 Denunciar post Postado Dezembro 23, 2011 Quais caracteres você quer permitir? Um companheiro da madrugada! Permitir apenas um (_), caso seja digitado qualquer outro caractere especial, este deverá ser substituído por (_) underline! Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Dezembro 23, 2011 Certo... minha pergunta não foi respondida com clareza, mas eu acho que você queira permitir quaisquer letras, números e underlines, portanto. Correto? Lá vai: <?php $string = ' ajd !@# 123 1@# !23 123!@ #!@3s $^56745 6322 -----@@@@@@@@@'; echo preg_replace( '/[^a-zA-Z0-9_]/' , '_' , $string ); //ou se você quer deixar somente um underline no maximo: echo '<br /><br />'; echo preg_replace( array( '/[^a-zA-Z0-9_]/' , '/_{2,}/' ) , '_' , $string ); //e se você quiser ainda retirar os underlines das laterais: echo '<br /><br />'; echo trim( preg_replace( array( '/[^a-zA-Z0-9_]/' , '/_{2,}/' ) , '_' , $string ) , '_' ); Retorno: _ajd_____123_1____23_123______3s___56745_6322_______________ _ajd_123_1_23_123_3s_56745_6322_ ajd_123_1_23_123_3s_56745_6322 :bye: Compartilhar este post Link para o post Compartilhar em outros sites
_SDinfo 3 Denunciar post Postado Dezembro 23, 2011 É isso mesmo. Muito obrigado por sua ajuda. Compartilhar este post Link para o post Compartilhar em outros sites