BlackMix 15 Denunciar post Postado Março 4, 2015 Olá galera.. depois de anos no site venho aqui postar um código modificado por mim por que queria poder editar os nomes pelo banco de dados então acabei editando da minha maneira esse código.. No banco voces usa campo: Nome, Nomes, ativo Em nome seria o nome da função. Em Nomes seria os nomes bloqueados. E ativo se a função está ativado ou não :p Não vou postar a conexão com banco de dados por que aqui no site tem varias maneiras então basta usar uma delas. vamos aos código: function filtro_palavras($msg) { global $settings; $poibid =array(); $poibid = explode(',',$settings['nomesfeios']); $num = count($poibid); for ($i=0; $i<$num; $i++) { $palavra=$poibid[$i]; $msg = str_ireplace($poibid[$i],'<span title="palavra proibida!">[**] *PARTY* [**]</span>',$msg); } return $msg; } $settings['nomesfeios'] é uma função minha de configurações que procura na tabela minhas função ou configurações se elas estão ativas ou não.. [**] *PARTY* [**] é o Nome que aparece no lugar do nome bloqueado. $poibid = explode(',',$settings['nomesfeios']); é aonde vamos separar os nomes por , $num = count($poibid); vamos contar quantos nomes tem. for ($i=0; $i<$num; $i++) vamos atribuir o i para ser o valor de cada nome no banco. $poibid[$i] é o valor das palavras.. eu nem sei por que deixei isso aqui > $palavra=$poibid[$i]; bem é isso.. vi que tinha varias pessoas atrás de um código desses pronto então está aí para quem quiser.. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 4, 2015 Duas sugestões: 1. Evite usar variáveis globais. Prefira passar parâmetros para as funções; 2. Não precisa fazer um loop. A função str_replace (e str_ireplace também) aceitam arrays como parâmetros Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Março 4, 2015 Duas sugestões: 1. Evite usar variáveis globais. Prefira passar parâmetros para as funções; 2. Não precisa fazer um loop. A função str_replace (e str_ireplace também) aceitam arrays como parâmetros sobre global eu já estava ligado a um tempo.. str_replace então aceita vim do banco como arrays ? eita então tenho muito o que aprender xD obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 4, 2015 sobre global eu já estava ligado a um tempo.. é sempre arriscado confiar em variáveis globais. Quando se tem muitas delas, a gente pode, acidentalmente, sobrescrever o valor de alguma delas. Por isso é bom evitá-las ao máximo str_replace então aceita vim do banco como arrays ? eita então tenho muito o que aprender xD Yep. Olha um simples exemplo: php > $palavroes = [ 'nome feio', 'nome mais feio ainda' ]; php > $str = 'string com nome feio e um nome mais feio ainda'; php > $str = str_ireplace( $palavroes, '***', $str ); php > var_dump( $str ); string(23) "string com *** e um ***" php > Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Março 4, 2015 é sempre arriscado confiar em variáveis globais. Quando se tem muitas delas, a gente pode, acidentalmente, sobrescrever o valor de alguma delas. Por isso é bom evitá-las ao máximo Yep. Olha um simples exemplo: php > $palavroes = [ 'nome feio', 'nome mais feio ainda' ]; php > $str = 'string com nome feio e um nome mais feio ainda'; php > $str = str_ireplace( $palavroes, '***', $str ); php > var_dump( $str ); string(23) "string com *** e um ***" php > Hmm.. eu só tenho 4 variável global no meu projeto de site de animes.. sobre isso que você acabou de postar eu tenho salvo no banco os nomes assim>> nome1,nome2,nome3,nome4,nome5,nome6 nesse caso eu teria que colocar 'nome2','nome3' ? e depois chamar eles ? já até tentei mas dá erro.. T_T" kkk Obs;; já que voce é moderador poderia editar meu perfil aqui no site? não consigo acessar ele da erro na URL Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 4, 2015 nesse caso eu teria que colocar 'nome2','nome3' ? e depois chamar eles ? Não. A variável $poibid já é o array com as palavras do filtro (equivalente ao array $palavroes que eu criei). Basta usá-la diretamente em str_ireplace, sem necessidade do loop Compartilhar este post Link para o post Compartilhar em outros sites
BlackMix 15 Denunciar post Postado Março 4, 2015 Deu certo xD thanks Acabei aprendendo algo com sua ajuda.. muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites