Resumen

Se explicara la manera correcta de acortar strings que se encuentran codificados en formato utf-8.

 

Ambiente

-PHP

Explicación

Normalmente cuando se requiere extraer o acortar una cadena de datos se utiliza la función de php llamada substr

 

substr(string $stringint $startint $length = ?)

 

Devuelve una parte del string definida por los parámetros start y length.

El problema es que esta función al utilizarlo con cadenas de datos codificadas en formato UTF-8 cuenta mal los carácteres, por lo que podría generar carácteres dañados y mostrandolos de esta manera: �.

 

Para evitar estos inconvenientes de deberá usar la función mb_substr.  Esta función cuenta correctamente los caracteres y retorna la cantidad correcta.

 

mb_substr(
    string $str,     int $start,     int $length = NULL,     string $encoding = mb_internal_encoding() )

Realiza una operación substr() multibyte de forma segura basada en el número de caracteres. La posición se cuenta desde el principio de str. La posición del primer carácter es 0. La posición del segundo es 1, etc.

 Ejemplo


        $utf8string "Buenos días compañeros";

        echo substr($utf8string,0,17);
        // output Buenos días co
        echo mb_substr($utf8string,0,17,'UTF-8');
        //output Buenos días comp

Referencias Externas

  1. https://www.php.net/manual/es/function.substr.php
  2. https://www.php.net/manual/es/function.mb-substr.php
Categorías: PHP

3 comentarios

jjjbetcom · diciembre 3, 2025 a las 8:09 pm

JJJbetcom, huh? Sounds kinda catchy. Browsed through the site and they got a solid selection of sports and games. Could be worth a punt. Your thoughts? Check it out jjjbetcom.

kingphisher · diciembre 19, 2025 a las 7:03 pm

I saw kingphisher.info. Definitely something there if that’s the kind of thing you’er looking for. It sounds fun! Check it out for yourself: kingphisher

76xgame · diciembre 19, 2025 a las 10:13 pm

76xgame popped up on my radar. Decent games, not too shabby at all. If you’re bored, give it a try. Here’s the link: 76xgame

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *