Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wolfphw

Substituir caracter de uma string

Recommended Posts

Tipo como que eu faço pra substituir determinados caracteres de uma string... que quero tirar palavrao de um sisteminha de torpedo que to desenvolvendo...

 

 

 

tipo minha string eh esse: você eh um fdp de m***** seu vagabundo

ele fica assim: você eh um **** da **** seu vagabundo

 

Desculapa pelo vocabulario mas eh um modo de mostarr oke eu quero :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse naum resolve meu problema... que esse seu soh troca uma uma letra de uma determinada posição :(

 

Eu preciso que ele procure na string determinada palavra e troque por ****

 

outro exemplo: Eu sou de Cuiabá

resultado: Eu sou de ****iabá

 

eu quero que sempre escreva 4 * independendo do tamanho da palavra procurada, para as pessoas naum conseguirem identificar o palavrao

 

Lembrei jah..... o comando que eu queria era o str_replace();

 

dai fica assim: $mensagem = str_replace("c*","****",$string);

 

:)

 

Soh tem um probleminha como eu mando ele procurar com letras minisculas ele naum achar quando esta escrito com letras maiusculas... vou ter que utilizar outro comando que naum diferencia se eh Caixa alta ou baixa, eu sei que tem pq jah usei, soh naum me lmbro o nome dele :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, primeiro você cria um array com as palavras que quer filtrar:

 

<?php

 

$filtro = array('palavrao' => '***', 'outropalavrao' => '***', 'fdp' => '***');

 

$texto = "Oi, você sabia q fulano é um fdp ?";

 

$txt_final = strTr($texto, $filtro);

 

echo $txt_final;

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse exemplo acima nao trocaria certo por exemplo se você procura-se por um palavrao tipo aquelas mulheres que rodam bolsinha na esquina

 

dai esse exemplo acima trocaria ate a palavra computador ficando com****dor

 

esse exemplo abaixo é mais preciso:

 

<?

$palavrao[0] = "v****";
$palavrao[1] = "corno";
$palavrao[2] = "gay";
$palavrao[3] = "bicha";

$string = "Seu v**** gay corno manso tonto você e um mane e mora em cornopolis";


function troca_letras($str, $words) { 

 if(is_array($words)) { 

  foreach($words as $k => $word) { 
 $pattern[$k] = "/\b($word)\b/is"; 
 $replace[$k] = '****'; 
  } 
 } 
 else { 
  $pattern = "/\b($words)\b/is"; 
  $replace = '****'; 
 } 

 return preg_replace($pattern,$replace, $str); 
} 

echo troca_letras($string, $palavrao);


?>

só você ir acrescentando os palavroes no array

 

como você pode ver a palavra cornopolis nao sera trocada

 

tiver mais duvidas posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema facilmente contornável, acrescentando espaços antes e após as strings :$filtro = array(' palavrao ' => ' *** ', ' outropalavrao ' => ' *** ', ' fdp ' => ' *** ');

Compartilhar este post


Link para o post
Compartilhar em outros sites

He he, esta do espaço foi ***. :D escorreguei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa assim:$mensagem = str_replace(strtoupper("c*"),"****",strtoupper($string));flw...

Esse seu tem um pequeno problema... ele transforma todo texto em maiúsculo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, alguem poderia explicar o que significa alinha

 

$pattern[$k] = "/\b($word)\b/is";

Na função que o Fabyo fez.

 

Não entendi o que a varialvel $pattern[$k] está recebendo. O que fignifica /\b e b/is será expressão regular?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.