Механізм навантаження функцій

Увага

Ця функціональність оголошена застарілої починаючи з PHP 7.2.0 і була ВИДАЛЕНО у версії PHP 8.0.0. Використовувати цю функцію не рекомендується.

Найчастіше змусити працювати існуючий PHP-додаток у багатобайтовому оточенні виявляється досить важким завданням. Це відбувається тому, що більшість PHP-додатків написано з використанням стандартних функцій обробки рядків, таких як substr(), які не вміють працювати з рядками у багатобайтових кодуваннях

mbstring підтримує механізм 'перевантаження функцій', який дозволяє повідомити додаток про те, що використовується багатобайтове кодування без модифікації коду, що відповідає за роботу з рядками. Наприклад, якщо увімкнено навантаження функцій, то функція mb_substr() буде викликатися замість substr(). Цей механізм у багатьох випадках дозволяє портувати додатки, що підтримують тільки однобайтові кодування, багатобайтне оточення.

Для використання механізму перевантаження функцій потрібно встановити налаштування mbstring.func_overload у php.ini позитивне значення, яке є комбінацією бітових масок, що визначають категорії функцій, які потрібно перевантажувати. Це буде число 1 для навантаження функції mail(). 2 для рядкових функцій; 4 для функцій регулярних виразів. Наприклад, якщо значення налаштування дорівнює 7, то поштові, рядкові та функції регулярних виразів перевантажуватимуться. Список перевантажуваних функцій наведено нижче.

Функції, які будуть перевантажені

значение настройки mbstring.func_overloadисходная функцияперегруженная функция
mail()mb_send_mail()
strlen()mb_strlen()
strpos()mb_strpos()
strrpos()mb_strrpos()
substr()mb_substr()
strtolower()mb_strtolower()
strtoupper()mb_strtoupper()
stripos()mb_stripos()
strripos()mb_strripos()
strstr()mb_strstr()
stristr()mb_stristr()
strrchr()mb_strrchr()
substr_count()mb_substr_count()

Зауваження :

Не рекомендується використовувати навантаження функцій у контексті кожної директорії, оскільки домогтися стабільної роботи в цьому випадку поки не вдалося, і це може призвести до несподіваної поведінки програми.