BlogBlogs.Com.Br

Tutorial » Problemas ao contar caracteres com strlen do PHP

10 de setembro de 2009 por Leo Caseiro

Problema

Estava validando uma string que tinha valor máximo de caracteres com a função strlen() do php.

Acontece que a função strlen() funciona muito bem para encoding iso-8859-1 ou quando a string não tem acentuação. Ou seja, quando a string tem um caracter acentuado a função retorna um strlen maior do que realmente deveria.

Para isso, devemos utilizar a função mb_strlen() que possui um segundo parâmetro, onde definimos qual o encoding utilizado.

Solução

Como sempre utilizo encoding utf8 nos sites que desenvolvo, tanto no php/MySQL quanto no html, precisei trocar o strlen pelo mb_strlen():

mb_strlen($string_utf8, 'utf8');

Para mais informações sobre a função mb_stren() acesse:
http://us3.php.net/manual/en/function.mb-strlen.php

Tags: ,


Gostou do Post? Assine o Feed Assine o Feed RSS




4 Comentários para “Problemas ao contar caracteres com strlen do PHP”

  1. Márcio disse:

    Muito útilo o post! Me ajudou bastante!

    Acho que todo programador PHP vai se deparar com isso um dia.

    Um abraço!

  2. Thiago disse:

    Muito bom….

    vai ajudar muita gnt no futuro….

    parabens

  3. Wellington disse:

    Acabei de fazer um teste e realmente acontece isso !

    O mb_strlen() cumpriu muito bem sua função xD

    Valeu !

Comentar

CommentLuv badge