1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/mbstring/overloading.xml
Mikhail Alferov fda22959b0 Update 3f1dbc4 to En (#1135)
* Update filters.xml to en

* Update filters.xml Исправил ошибки и формулировки

* Update null.xml to en

* Update constants.xml to en

* Update overloading.xml to en

* Update filters.xml Sync the Rev. ID
2025-12-12 08:25:32 +03:00

145 lines
5.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3f1dbc451b313fb1ec8058f24c1beccf55fce316 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mbstring.overload" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>
Механизм перегрузки функций
</title>
&warn.deprecated.feature-7-2-0.removed-8-0-0;
<para>
Зачастую заставить работать существующее PHP-приложение в многобайтовом
окружении становится трудоёмкой задачей. Причина состоит в том,
что большую часть PHP-приложений написали со стандартными функциями
обработки строк наподобие <function>substr</function>, которые не умеют
работать со строками в многобайтовых кодировках.
</para>
<para>
Модуль mbstring поддерживает механизм «перегрузки функций»,
который сообщает приложению о работе с многобайтовой кодировкой,
без модификации кода, который отвечает за работу со строками. Например, при включении
перегрузки функций вместо функции <function>substr</function>
вызывается функция <function>mb_substr</function>.
Этот механизм часто помогает
переносить в многобайтовое окружение приложения,
которые поддерживают только однобайтовые кодировки.
</para>
<para>
Для активации механизма перегрузки функций потребуется задать настройке
<literal>mbstring.func_overload</literal> в &php.ini; положительное значение,
которое представляет собой комбинацию битовых масок для определения категорий
функций, которые требуется перегружать. Число 1 перегружает функции
<function>mail</function>, 2 — строковые функции, 4 — функций регулярных
выражений. Например, если значение настройки равно 7, то почтовые, строковые
и функции регулярных выражений станут перегружаться. Список перегружаемых функций
приведён ниже.
<table>
<title>Функции, которые перегрузятся</title>
<tgroup cols="3">
<thead>
<row>
<entry>значение настройки mbstring.func_overload</entry>
<entry>исходная функция</entry>
<entry>перегруженная функция</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry><function>mail</function></entry>
<entry><function>mb_send_mail</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strlen</function></entry>
<entry><function>mb_strlen</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strpos</function></entry>
<entry><function>mb_strpos</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strrpos</function></entry>
<entry><function>mb_strrpos</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>substr</function></entry>
<entry><function>mb_substr</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strtolower</function></entry>
<entry><function>mb_strtolower</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strtoupper</function></entry>
<entry><function>mb_strtoupper</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>stripos</function></entry>
<entry><function>mb_stripos</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strripos</function></entry>
<entry><function>mb_strripos</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strstr</function></entry>
<entry><function>mb_strstr</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>stristr</function></entry>
<entry><function>mb_stristr</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>strrchr</function></entry>
<entry><function>mb_strrchr</function></entry>
</row>
<row>
<entry>2</entry>
<entry><function>substr_count</function></entry>
<entry><function>mb_substr_count</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<note>
<para>
Не рекомендуется включать перегрузку функций в контексте
каждой директории, так как добиться стабильной работы в такой конфигурации пока
не получилось, а поведение приложения становится неожиданным.
</para>
</note>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->