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/strings/functions/str-replace.xml
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

235 lines
9.0 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.str-replace" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>str_replace</refname>
<refpurpose>Заменяет вхождения строки поиска строкой замены</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>array</type></type><methodname>str_replace</methodname>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>search</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>replace</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>array</type></type><parameter>subject</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">count</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Функция возвращает строку или массив, в котором заменила
вхождения <parameter>search</parameter> в <parameter>subject</parameter>
значением <parameter>replace</parameter>.
</para>
<para>
Замену текста на основе шаблона, а не фиксированной строки,
выполняют функцией <function>preg_replace</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
Если параметры <parameter>search</parameter> и <parameter>replace</parameter>
массивы, функция <function>str_replace</function> возьмёт
значение из каждого массива для поиска и замены
во входной строке <parameter>subject</parameter>.
Если в массиве <parameter>replace</parameter> значений меньше, чем
в массиве <parameter>search</parameter>, функция заменит остальные
значения пустой строкой.
Функция заменит строкой замены каждое значение
массива <parameter>search</parameter>, если параметр
<parameter>search</parameter> — массив, а параметр
<parameter>replace</parameter> — строка. Обратное не имело бы смысла.
</para>
<para>
Если параметры <parameter>search</parameter>
или <parameter>replace</parameter> — массивы, функция обработает
элементы массивов от первого к последнему.
</para>
<para>
<variablelist>
<varlistentry>
<term><parameter>search</parameter></term>
<listitem>
<para>
Искомое значение, которое знают также как <emphasis>needle</emphasis>:
иголку, которую требуется найти в стоге сена. В параметр передают массив
значений, когда требуется найти несколько «иголок» одновременно.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>replace</parameter></term>
<listitem>
<para>
Значение замены, которым функция заменит значения
<parameter>search</parameter>, которые найдёт.
В параметр передают массив значений, когда требуется выполнить несколько замен.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>subject</parameter></term>
<listitem>
<para>
Строка или массив для поиска и замены,
которые знают также как <emphasis>haystack</emphasis>: стог сена,
в котором требуется найти иголку.
</para>
<para>
Функция выполнит поиск и замену с каждым элементом массива
<parameter>subject</parameter>, если параметр <parameter>subject</parameter>
массив, и результат тоже будет массивом.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>
Функция установит для этого параметра количество замен, если аргумент передали.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает строку или массив с заменёнными значениями.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Примеры использования функции <function>str_replace</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Даёт: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
echo $bodytag, PHP_EOL;
// Даёт: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
echo $onlyconsonants, PHP_EOL;
// Даёт: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
echo $newphrase, PHP_EOL;
// Даёт: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count, PHP_EOL;
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>
Примеры неочевидного поведения функции <function>str_replace</function>
</title>
<programlisting role="php">
<![CDATA[
<?php
// Порядок замены
$str = "Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Сначала обработаем последовательности символов \r\n, чтобы значения замены не появились дважды
echo $newstr = str_replace($order, $replace, $str);
echo $newstr, PHP_EOL;
// Выводит F, поскольку A заменяется на B, затем B на C и так далее...
// Наконец E заменяется на F, поскольку функция заменяет значения слева направо
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject), PHP_EOL;
// Выводит: яблорехкорех орех по той же причине
$letters = array('я', 'о');
$fruit = array('яблоко', 'орех');
$text = 'я о';
$output = str_replace($letters, $fruit, $text);
echo $output, PHP_EOL;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.bin-safe;
<caution>
<title>Замечание о порядке замены</title>
<para>
При множественных заменах функция <function>str_replace</function> заменит значение,
которое вставила на предыдущем шаге, очередным значением, поскольку
заменяет значения слева направо.
Примеры на этой странице показывают порядок замены.
</para>
</caution>
<note>
<para>
Функция чувствительна к регистру. Замену без учёта регистра
выполняет функция <function>str_ireplace</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>str_ireplace</function></member>
<member><function>substr_replace</function></member>
<member><function>preg_replace</function></member>
<member><function>strtr</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
-->