it's kinda evil and gives you tons of headache.Функција за преоптоварување на функции
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Функција за преоптоварување на функции
Референца за `mbstring.overload.php` со подобрена типографија и навигација.
Функција за преоптоварување на функции
Претходната порака за грешка DEPRECATED Оваа функција е REMOVED од PHP 7.2.0, и
Честопати може да ви биде тешко да натерате постоечка PHP апликација да работи во дадено мултибајтно опкружување. Ова се случува затоа што повеќето PHP апликации таму се напишани со стандардни функции за низи како што се substr(), кои се познати по тоа што не ги обработуваат правилно низите кодирани во мултибајт.
mbstring поддржува функција за „преоптоварување на функции“ која ви овозможува да додадете мултибајтна свесност на таква апликација без модификација на кодот со преоптоварување на мултибајтни пандани на стандардните функции за низи. На пример, mb_substr() се повикува наместо substr() ако е овозможено преоптоварување на функции. Оваа функција го олеснува пренесувањето на апликации кои поддржуваат само еднобајтни кодирања во мултибајтно опкружување во многу случаи.
За да го користите преоптоварувањето на функции, поставете
mbstring.func_overload in php.ini на позитивна вредност што претставува комбинација од битни маски што ги специфицираат категориите на функции што треба да се преоптоварат. Треба да се постави на 1 за да се преоптовари функцијата mail() . 2 за функции за низи, 4 за функции за регуларни изрази. На пример, ако е поставено на 7, ќе се преоптоварат функциите mail, низи и регуларни изрази. Списокот на преоптоварени функции е прикажан подолу.
| вредност на mbstring.func_overload | оригинална функција | преоптоварена функција |
|---|---|---|
| 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 белешки
I took over a project with this "feature" enabled... took me a while to figure out why strings behaved non language standard. So, if you like to make grown men cry - by all means enable this deathtrap.In short, only use mbstring.func_overload if you are 100% certain that nothing on your site relies on manipulating binary data in PHP.In case you need to (de)activate the overloading for a specific directory, try setting an appropriate php_admin_value in your httpd.conf, e.g.
<Directory ...>
...
php_admin_value mbstring.func_overload 7
</Directory>
I'm not 100% sure if one can rely on that, but it seems to work for me.