1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
Mikhail Alferov c394cf8502 Update 45042fe to En (#1085)
* Update book.xml to en

* Update addcslashes.xml to en

* Update addslashes.xml to en

* Update sprintf.xml to en

* Update chr.xml to en

* Update chunk-split.xml to en

* Update echo.xml to en

* Update explode.xml to en

* Update fprintf.xml to en

* Update html-entity-decode.xml to en

* Update lcfirst.xml to en

* Update md5-file.xml to en

* Update number-format.xml to en

* Update ord.xml to en

* Update echo.xml

* Update print.xml to en

* Update setlocale.xml to en

* Update sha1-file.xml to en

* Update soundex.xml to en

* Update str-getcsv.xml to en

* Update str-pad.xml to en

* Update str-replace.xml to en

* Update stripos.xml to en

* Update stristr.xml to en

* Update strlen.xml to en

* Update strnatcmp.xml to en

* Update strpbrk.xml to en

* Update strpos.xml to en

* Update strrpos.xml to en

* Update strstr.xml to en

* Update strtok.xml toen

* Update strtr.xml to en

* Update substr-compare.xml to en

* Update substr-count.xml to en

* Update substr.xml to en

* Update ucfirst.xml to en

* Update ucwords.xml to en

* Update vfprintf.xml to en
2025-07-04 19:30:56 +03:00

214 lines
8.2 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: 45042fef652f1b4e904e809fcbfcf31f6c60670b Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.strtr" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>strtr</refname>
<refpurpose>Заменяет символы или подстроки</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>strtr</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>string</type><parameter>from</parameter></methodparam>
<methodparam><type>string</type><parameter>to</parameter></methodparam>
</methodsynopsis>
<simpara>Альтернативная сигнатура (не поддерживается с именованными аргументами):</simpara>
<methodsynopsis>
<type>string</type><methodname>strtr</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>array</type><parameter>replace_pairs</parameter></methodparam>
</methodsynopsis>
<para>
При передаче трёх аргументов функция возвращает копию
строки <parameter>string</parameter>, в которой заменила вхождения каждого
однобайтового символа строки <parameter>from</parameter>
на символ строки <parameter>to</parameter> с тем же индексом:
каждое вхождение символа <literal>$from[$n]</literal> заменяется
символом <literal>$to[$n]</literal>, где <literal>$n</literal>
допустимое смещение строки в обоих аргументах.
</para>
<para>
При несовпадении длины строк <parameter>from</parameter>
и <parameter>to</parameter> «лишние» символы в более
длинной строке игнорируются. Функция вернёт строку той же длины,
что и у аргумента <parameter>string</parameter>.
</para>
<para>
При передаче двух аргументов во втором передают значение с типом <type>array</type>
в формате <literal>array('from' =&gt; 'to', ...)</literal>. Функция вернёт
строку, в которой заменит вхождения ключей массива значениями.
Самые длинные ключи обрабатываются первыми. После замены новое значение подстроки больше не участвует в поиске.
</para>
<para>
Функция принимает ключи и значения произвольной длины, при условии что массив
не содержит пустых ключей; при этом длина возвращаемого значения после замены иногда
не совпадает с длиной исходной строки <parameter>string</parameter>,
но функция работает эффективнее с ключами одинаковой длины.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Строка (<type>string</type>), в которой требуется заменить символы или подстроки.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>from</parameter></term>
<listitem>
<para>
Строка (<type>string</type>), которую заменит значение <parameter>to</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>to</parameter></term>
<listitem>
<para>
Строка (<type>string</type>), которая заменяет значение <parameter>from</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>replace_pairs</parameter></term>
<listitem>
<para>
Параметр <parameter>replace_pairs</parameter>
указывают вместо параметров <parameter>to</parameter> и <parameter>from</parameter>.
В аргументе передают массив (<type>array</type>)
в форме <literal>array('from' =&gt; 'to', ...)</literal>.
</para>
<para>
Функция игнорирует элементы массива <parameter>replace_pairs</parameter>
с ключами в виде пустой строки (<type>string</type>) (<literal>""</literal>),
а с PHP 8.0.0 выдаёт ошибку уровня <constant>E_WARNING</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает преобразованную строку (<type>string</type>).
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример замены символов функцией <function>strtr</function></title>
<programlisting role="php">
<![CDATA[
<?php
$addr = "The river å";
// В этой форме функция strtr() выполняет побайтовую замену символов.
// Поэтому здесь подразумевается однобайтовая кодировка:
$addr = strtr($addr, "äåö", "aao");
echo $addr, PHP_EOL;
?>
]]>
</programlisting>
</example>
</para>
<para>
Следующий пример показывает поведение функции <function>strtr</function>
при вызове только с двумя аргументами. Обратите внимание
на приоритет замен — символ <literal>"h"</literal> не участвует в поиске,
поскольку массив содержит более длинные совпадения, — и как после замены новый текст
больше не участвует в поиске.
</para>
<example>
<title>Пример замены символов или подстрок функцией <function>strtr</function> при вызове с двумя аргументами</title>
<programlisting role="php">
<![CDATA[
<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
hello all, I said hi
]]>
</screen>
</example>
<para>
Эти два режима поведения значительно различаются. При вызове
с тремя аргументами функция <function>strtr</function> заменяет байты,
а при вызове с двумя заменяются и более длинные подстроки.
</para>
<example>
<title>Сравнение поведения функции <function>strtr</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
1001
ba01
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>str_replace</function></member>
<member><function>preg_replace</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->