segunda-feira, 21 de julho de 2014

Remover acentos de uma string php

Heey! Vamos ver de forma "rápida" como remover acentos de uma string php.
Primeiro entendendo a lógica:
A função strtr() do php possui duas formas de utilizá-la. Com 2 ou 3 parâmetros. Com 2 é mais cansativo, mas mais simples. Veja as strtr utilizando 2 parâmetros, onde:
string strtr ( string $str , array $replaice_pairs );
Veja:

<?php
$str = "Legião Urbana, Caçarolha e Ílhas";
$replace_pairs = array('á' => 'a',
'à' => 'a',
'â' => 'a',
'ã' => 'a',
'ä' => 'a',
'é' => 'e',
'è' => 'e',
'ê' => 'e',
'ë' => 'e',
'í' => 'i',
'ì' => 'i',
'î' => 'i',
'ï' => 'i',
'ó' => 'o',
'ò' => 'o',
'ô' => 'o',
'õ' => 'o',
'ö' => 'o',
'ú' => 'u',
'ù' => 'u',
'û' => 'u',
'ü' => 'u',
'ç' => 'c',
'Á' => 'A',
'À' => 'A',
'Â' => 'A',
'Ã' => 'A',
'Ä' => 'A',
'É' => 'E',
'È' => 'E',
'Ê' => 'E',
'Ë' => 'E',
'Í' => 'I',
'Ì' => 'I',
'Î' => 'I',
'Ï' => 'I',
'Ó' => 'O',
'Ò' => 'O',
'Ô' => 'O',
'Õ' => 'O',
'Ö' => 'O',
'Ú' => 'U',
'Ù' => 'U',
'Û' => 'U',
'Ü' => 'U',
'Ç' => 'C');

$strtr = strtr($str , $replace_pairs); // E aqui a mágica acontece
echo "Antes: ".$str; // Isso imprime o valor da STRING (Sem converção)
echo "Depois: ".$strtr; // Isso imprime o valor de $STRTR (con a converção)
?>
//Resultado

A forma com 3 parâmetros é mais simples, e o resultado, o mesmo.
Ela conta, obviamente, com 3 parâmetros, sendo:
string strtr string $str string $from string $to );
Ela usa um método de procura parecido com indexOf nas duas strings de substituição. Ela substitui o caractere na posição 0 de $from pelo da mesma posição de $to, e assim por diante.
Veja:
<?php
 $str = "Legião Urbana e Paçoca";
 $from = "áàãâéèêëäíìîïóòõôöúùûüÁÀÃÂÉÈÊËÄÍÌÎÏÓÒÕÔÖÚÙÛÜ";
 $to =   "aaaaeeeeaiiiiooooouuuuAAAAEEEEAIIIIOOOOOUUUU";
 $strtr = strtr($str, $from, $to); // retorna: "Legiao Urbana e Pacoca";
?>
Uma recomendação que dou é deixar o valor de $to exatamente abaixo de $from. Isso evita erros.


Letras maiúsculas distinguem de minúsculas.
Mãos ao Ctrl+C e vamos terminar logo isso!!

Como fazer:
1. Defina uma variável com a string a ser convertida.
2.1. Defina uma variável com um array, colocando a string base, => e a string destino.
3.1. Use strtr() com o primeiro parâmetro como a variável do item 1, e o segundo parâmetro com a variável do item dois.
--OU--
2.2. Defina duas variáveis para serem pesquisadas e substituídas.
3.2. Use strtr() com o primeiro parâmetro como a variável do item 1, o segundo a variável de pesquisa, e o terceiro a variável de substituição.
4. Lembre-se que strtr() retorna uma string.

Nenhum comentário :

Postar um comentário