Caracteres especiais para tabela ascii

Há quem diga que desenvolvimento é uma arte e exige muita pesquisa para conseguir dominá-la, eu atualmente estou longe deste feito mas estou me esforçando para melhorar meus conhecimentos.

Recentemente precisei fazer um projeto e escolhi utilizar o Zend Framework por ter um bom acervo de bibliotecas de funções que eu precisaria utilizar. Num dado momento
senti a necessidade de converter caracteres especiais (ç, é, á, à) para os caracteres similares da tabela ascii para criar uma URL amigável para a aplicação.

Procurei em vários blogs e apenas encontrei pequenos scripts que faziam um mapa de caracteres próprio para em seguida fazer a conversão. Particularmente não gosto da ideia de ter que fazer uma mapa de caracter próprio então desenvolvi um plugin chamado “Zag_Filter_CharConvert” cuja repositório está localizado no github (https://github.com/agutoli/CharConvert) e que faz o trabalho sujo pra você como veremos abaixo.

– Antes de mais nada temos que baixar o pacote https://github.com/agutoli/CharConvert/tags e descompactá-lo dentro do diretório library na mesma raiz de Zend.

Removendo os caracteres especiais

/** dependencies **/
require 'Zend/Loader/Autoloader.php';
require 'Zag/Filter/CharConvert.php';

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

$filter = new Zag_Filter_CharConvert();
echo $filter->filter('éééé ááááá 90');//eeee aaaaa 90

Passando os parâmetros como array

/** dependencies **/
require 'Zend/Loader/Autoloader.php';
require 'Zag/Filter/CharConvert.php';

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

$filter = new Zag_Filter_CharConvert(array(
    'replaceWhiteSpace' => '-',
    'locale' => 'en_US',
    'charset'=> 'UTF-8'
));
echo $filter->filter('ééé ááá 90');//eee-aaa-90
echo $filter->filter('óóó 10aáééé');//ooo-10aaeee

Passando os parâmetros de configuração como argumentos

/** dependencies **/
require 'Zend/Loader/Autoloader.php';
require 'Zag/Filter/CharConvert.php';

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

$filter = new Zag_Filter_CharConvert('UTF-8', 'en_US', '-');
echo $filter->filter('éééé ááááá 90');//eeee-aaaaa-90

Bem, acredito que este plugin ainda precise de ajustes, se alguém testar e encontrar algum problema peço que me avise.

Abraço!

Artigos Relacionados

Artigos Relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • RSS
  • Facebook
  • Google+
  • LinkedIn
  • Twitter
  • Git Hub
  • YouTube