mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
* 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
145 lines
5.8 KiB
XML
145 lines
5.8 KiB
XML
<?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
|
||
-->
|