Pular para o conteúdo principal

Converter caracteres html para formato normal

Utilizo muito a função abaixo quando recebo dados provindos de editores html. Normalmente eu não salvo no banco com os caracteres no formato html pois isso prejudica na busca.

$ar_especial = array(   'á'=>'á',
                        'Á'=>'Á',
                        'ã'=>'ã',
                        'Ã'=>'Ã',
                        'â'=>'â',
                        'Â'=>'Â',
                        'à'=>'à',
                        'À'=>'À',
                        'é'=>'é',
                        'É'=>'É',
                        'ê'=>'ê',
                        'Ê'=>'Ê',
                        'í'=>'í',
                        'Í'=>'Í',
                        'ó'=>'ó',
                        'Ó'=>'Ó',
                        'õ'=>'õ',
                        'Õ'=>'Õ',
                        'ô'=>'ô',
                        'Ô'=>'Ô',
                        'ú'=>'ú',
                        'Ú'=>'Ú',
                        'ç'=>'ç',
                        'Ç'=>'Ç',
                        ' '=>' ',
                        '\&'=>'\&',
                        'ˆ'=>'ˆ',
                        '˜'=>'˜',
                        '¨'=>'¨',
                        '´'=>'&cute;',
                        '¸'=>'¸',
                        '"'=>'"',
                        '“'=>'“',
                        '”'=>'”',
                        '‘'=>'‘',
                        '’'=>'’',
                        '‚'=>'‚',
                        '„'=>'„',
                        'º'=>'º',
                        'ª'=>'ª',
                        '‹'=>'‹',
                        '›'=>'›',
                        '«'=>'«',
                        '»'=>'»',
                        '–'=>'–',
                        '—'=>'—',
                        '¯'=>'¯',
                        '…'=>'…',
                        '¦'=>'¦',
                        '•'=>'•',
                        '‣'=>'‣',
                        '¶'=>'¶',
                        '§'=>'§',
                        '©'=>'©',
                        '®'=>'&reg',
                        'ü'=>'ü',
                        'Ü'=>'Ü',
                        "'"=>''',
                        '½'=>'½',
                        '⅓'=>'⅓',
                        '≠'=>'≠',
                        '≅'=>'≅',
                        '≤'=>'≤',
                        '≥'=>'≥');

function conversao($palavra) { // converte texto normal para o formato html)
    global $ar_especial;
    return str_replace(array_keys($ar_especial), array_values($ar_especial), $palavra);
}

function desconversao($palavra) { // converte o formato html para texto normal
    global $ar_especial;
    return str_replace(array_values($ar_especial), array_keys($ar_especial), $palavra);
}

Comentários

Postagens mais visitadas deste blog

Lista de órgãos emissores de RG

Para quem quiser normalizar os órgãos emissores de RG, aí vai uma lista retirada do site da FGV: SSP - Secretaria de Segurança Pública PM - Polícia Militar PC - Policia Civil CNT - Carteira Nacional de Habilitação DIC - Diretoria de Identificação Civil CTPS - Carteira de Trabaho e Previdência Social FGTS - Fundo de Garantia do Tempo de Serviço IFP - Instituto Félix Pacheco IPF - Instituto Pereira Faustino IML - Instituto Médico-Legal MTE - Ministério do Trabalho e Emprego MMA - Ministério da Marinha MAE - Ministério da Aeronáutica MEX - Ministério do Exército POF - Polícia Federal POM - Polícia Militar SES - Carteira de Estrangeiro SJS - Secretaria da Justiça e Segurança SJTS - Secretaria da Justiça do Trabalho e Segurança ZZZ - Outros (inclusive exterior)

Comparar dois números float em PHP

Para não passar raiva comparando dois números float com PHP nunca faça algo do tipo abaixo: $a = 0.1; $b = 0.2; if ($a + $b == 0.3) {     echo 'Igual'; } else {     echo 'Diferentes'; } Se fizer isso, vai ver que dá problema devido ao modo como o PHP guarda os valores float. Para resolver isso criei a função abaixo para comparar dois valores do tipo float. /** * Esta função recebe dois números como parâmetro.   * Se os números forem iguais, ou seja, se a diferença  * entre eles for menor que a margem de erro aceitável,   * a função retorna 0, caso contrário retorna -1 se o  * primeiro número for menor, * ou então 1 caso o segundo  * seja o menor   * @param float $a   * @param float $b   * @return 0 (igual), -1($num1 menor), 1($num2 menor)   */ function compara_float( $num1 , $num2 , $precisao = 5 ) {   $desprezar = pow ( 0.1 , $precisao );   $diff = abs ( $num1 - $...