Sobrecarga de Funciones
Quizás resulte complicado obtener una aplicación de PHP que
funcione en un determinado entorno multibyte. Esto sucede porque la
mayor parte de las aplicaciones de PHP están escritas con las funciones estándar
de cadenas de caracteres, como por ejemplo substr, la cual se sabe
que no maneja correctamente los strings codificados de forma multibyte.
mbstring admite la 'sobrecarga de funciones', característica que permite
que tales aplicaciones consideren los multibyes sin necesidad de modificar
el código, sobrecargando las funciones homólogas multibyes sobre las
estándar de cadenas de caracteres. Por ejemplo, se invocaría a
mb_substr en lugar de a
substr si se habilitara la sobrecarga de funciones.
En muchos casos, esta funcionalidad simplifica la portabilidad de las
aplicaciones que tan solo admiten codificaciones de un único byte a entornos multibyte.
Para utilizar la sobrecarga de funciones, se ha de establecer
mbstring.func_overload en &php.ini; a un
valor positivo que represente una combinación de máscaras de bits que especifiquen
las categorías de las funciones que se sobrecargarán. Para sobrecargar
la función mail debe etablecerse a 1. Para funciones
de string, a 2. Para funciones de expresiones regulares, a 4. Por ejemplo,
si se estableciera a 7, se sobrecargaría las funciones de mail, de string, y de
expresiones regulares. A continuación se muestra la lista de funciones sobrecargadas.
Funciones sobrecargadas
valor de mbstring.func_overload
función original
función sobrecargada
1
mail
mb_send_mail
2
strlen
mb_strlen
2
strpos
mb_strpos
2
strrpos
mb_strrpos
2
substr
mb_substr
2
strtolower
mb_strtolower
2
strtoupper
mb_strtoupper
2
stripos
mb_stripos
2
strripos
mb_strripos
2
strstr
mb_strstr
2
stristr
mb_stristr
2
strrchr
mb_strrchr
2
substr_count
mb_substr_count
4
ereg
mb_ereg
4
eregi
mb_eregi
4
ereg_replace
mb_ereg_replace
4
eregi_replace
mb_eregi_replace
4
split
mb_split
No se recomienda habilitar la sobrecarga de funciones en un contexto
de directorios, ya que todavía no se ha confirmado que su uso sea
suficientemente estable en un entorno de producción, lo que podría
conducir a comportamientos inesperados.