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

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Current day month ye@r *

ecofirma

Visita Nuestro Gestor Documental Ecofirma.

Visita ecofirma

Pasantía en Desarrollo de Software. 

Envia tu curriculum a la dirección:  talento@rolosa.com

Descripción de la pasantía

Esta pasantía se caracteriza por incrementar las capacidades de programación de la persona, y perfeccionamiento de lenguajes con el tinte de incursión en desarrollo de software, páginas web y mantenimiento de las mismas. 

Conocimientos y requisitos

Beneficios y Compensación
Una pasantía en ROLOSA le permite al/la pasante no solo ganar experiencia sino desarrollar habilidades para mejorar confianza, seguridad y comunicación necesarias en los primeros años de actividad profesional, además de desarrollar las destrezas técnicas.

La pasantía en ROLOSA es de 6 meses, horario de 8 am a 5pm, NO renovable y tiene una asistencia económica de 100.000 colones mensuales. Al finalizar la pasantía, cabe la posibilidad de obtener una plaza fija, sujeta a disponibilidad.

ROLOSA se dedica al desarrollo y distribución de diferentes tecnologías.