Recurso de Sobrecarga de Funções

Warning

Este recurso tornou-se DEFASADO a partir do PHP 7.2.0 e foi REMOVIDO a partir do PHP 8.0.0. O uso deste recurso é fortemente desencorajado.

Você pode frequentemente encontrar dificuldades ao fazer com que uma aplicação PHP existente funcione em um ambiente multibyte específico. Isso acontece porque a maioria das aplicações PHP por aí são escritas com funções de string padrão como substr(), que são conhecidas por não lidar corretamente com strings codificadas em multibyte.

mbstring suporta um recurso de 'sobrecarga de funções' que permite adicionar suporte a multibyte a uma aplicação dessas sem modificar o código, sobrecarregando as contrapartes multibyte das funções de string padrão. Por exemplo, mb_substr() é chamada em vez de substr() se a sobrecarga de funções estiver ativada. Esse recurso facilita a migração de aplicações que suportam apenas codificações de byte único para um ambiente multibyte em muitos casos.

Para usar a sobrecarga de funções, defina mbstring.func_overload no php.ini para um valor positivo que represente uma combinação de máscaras de bits especificando as categorias de funções a serem sobrecarregadas. Deve ser definido como 1 para sobrecarregar a função mail(), 2 para funções de string, 4 para funções de expressão regular. Por exemplo, se for definido como 7, as funções de correio, strings e expressões regulares serão sobrecarregadas. A lista de funções sobrecarregadas é mostrada abaixo.

Funções a serem sobrecarregadas
valor de mbstring.func_overload função original função sobrecarregada
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()

Note:

Não é recomendado usar a opção de sobrecarga de funções no contexto por diretório, porque ainda não foi confirmado como sendo estável o suficiente em um ambiente de produção e pode levar a um comportamento indefinido.