Código simples em PHP que pode ser usado para substituição de caracteres diversos, letras, números, etc.
Não vou dar muitas explicações porque não tem muito o que explicar, quem gosta de PHP precisa ser capas de, ao observar um código simples entender seu funcionamento, e quem souber o básico já poderá olhar os exemplos e decifrar.
Vendo o código abaixo entenda que o que será mudado é cada palavra da frase que dizer '
precisa' ela será substituída por '
é preciso'.
<?php
$FraseTexto='Para mudar não precisa inovar, para melhorar, precisa fazer diferente';
$TrocaCaractere = array("precisa" => "é preciso");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);
echo $JaMudouUnsCaracteres;
// Para mudar não é preciso inovar, para melhorar, é preciso fazer diferente
?>
O exemplo abaixo é semelhante, mas mudei um pouco, agora quero duas substituições diferentes, as palavras '
não precisa' serão trocadas por '
melhor é' e depois irá substituir também '
fazer diferente' por '
muita qualidade!'
<?php
$FraseTexto='Para mudar não precisa inovar, para melhorar, precisa fazer diferente';
$TrocaCaractere = array("não precisa" => "melhor é", "fazer diferente" => "muita qualidade!");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);
echo $JaMudouUnsCaracteres;
// Para mudar melhor é inovar, para melhorar, precisa muita qualidade!
?>
Assim eu posso criar diversas substituições, para muitos tipos de caracteres, alfanuméricos, acentuações, etc... mas, como sempre, códigos são complicados, alguns caracteres podem ser interpretados como parte do código, e, qualquer caracter errado num código PHP pode dar erro, agora, um exemplo mais complexo:
<?php
$FraseTexto='PEC280 pra reduzir número de deputados pela metade, pro Brasil economizar mais de meio bilhão anualmente, cada 1 dos 513 custa em média 170 mil mensalmente';
$TrocaCaractere = array(" pra " => " para ", " pro " => " para o ", "economizar " => "deixar de gastar ", "mensalmente" => "ao mês", " 1 " => " um ", " 2 " => " dois ", " reduzir " => " diminuir ", " em média " => " mais ou menos ", "anualmente" => "ao ano", "PEC" => "Projeto de Emenda Constitucional ", "0 mil " => "0.000 ", "1 mil " => "1.000 ", "2 mil " => "2.000 ", "3 mil " => "3.000 ");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);
echo $JaMudouUnsCaracteres;
//Projeto de Emenda Constitucional 280 para reduzir número de deputados pela metade, para o Brasil deixar de gastar mais de meio bilhão ao ano, cada um dos 513 custa mais ou menos 170.000 ao mês
?>
Certo, nem tudo, viu que eu queria mudar
" reduzir " para
" diminuir ", mas não mudou, dificil explicar isso, imagine que aconteceu que meu "filtro" estava trocando o
" pra " mas o
" reduzir " está como que 'colado nele' por um espaçamento que teria que ser trocado ao mesmo tempo, se eu tivesse colocado assim:
"reduzir " => " diminuir "
Aí teria funcionado, ou, se
Para resolver problemas assim, eu poderia criar mais um filtro, ou dois ou três após aquele primeiro, isso poderia me trazer um problema, como sobrecarga do servidor em caso de muitos acessos ou outro que não grave, mas ficaria assim: