Function Overloading Feature
ENTITY
You might often find it difficult to get an existing PHP application to work in a given multibyte environment. This happens because most PHP applications out there are written with the standard string functions such as substr, which are known to not properly handle multibyte-encoded strings.
mbstring supports a 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr is called instead of substr if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.
To use function overloading, set mbstring.func_overload in ENTITY to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail function. 2 for string functions, 4 for regular expression functions. For example, if it is set to 7, mail, strings and regular expression functions will be overloaded. The list of overloaded functions are shown below.
| value of mbstring.func_overload | original function | overloaded function |
|---|---|---|
| 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 |
Functions to be overloaded
[!NOTE] It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.