Tabla de contenidos
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$string
, int$start
, int$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
0 comentarios