1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/strings/functions/explode.xml
2021-05-06 10:32:41 +03:00

261 lines
7.9 KiB
XML
Raw 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: c69c20982392cd55260b9870431a029e801d52e0 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.explode" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>explode</refname>
<refpurpose>Разбивает строку с помощью разделителя</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>explode</methodname>
<methodparam><type>string</type><parameter>separator</parameter></methodparam>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>limit</parameter><initializer><constant>PHP_INT_MAX</constant></initializer></methodparam>
</methodsynopsis>
<para>
Возвращает массив строк, полученных разбиением строки
<parameter>string</parameter> с использованием
<parameter>separator</parameter> в качестве разделителя.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>separator</parameter></term>
<listitem>
<para>
Разделитель.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Входная строка.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>limit</parameter></term>
<listitem>
<para>
Если аргумент <parameter>limit</parameter> является положительным,
возвращаемый массив будет содержать максимум <parameter>limit</parameter>
элементов, при этом последний элемент будет содержать остаток строки
<parameter>string</parameter>.
</para>
<para>
Если параметр <parameter>limit</parameter> отрицателен, то
будут возвращены все компоненты, кроме последних
-<parameter>limit</parameter>.
</para>
<para>
Если <parameter>limit</parameter> равен нулю, то он расценивается как 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<para>
До PHP 8.0 функция <function>implode</function> принимала параметры в любом порядке.
Функция <function>explode</function> никогда этого не поддерживала: убедитесь в том, что <parameter>separator</parameter>
указан перед аргументом <parameter>string</parameter>.
</para>
</note>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает массив (<type>array</type>) строк (<type>string</type>),
созданный делением параметра <parameter>string</parameter> по
границам, указанным параметром <parameter>separator</parameter>.
</para>
<para>
Если <parameter>separator</parameter> является пустой строкой (""),
<function>explode</function> возвращает &false;. Если
<parameter>separator</parameter> не содержится в <parameter>string</parameter>,
и используется отрицательный <parameter>limit</parameter>, то
будет возвращён пустой массив (<type>array</type>), иначе будет
возвращён массив, содержащий <parameter>string</parameter>.
Если значения <parameter>separator</parameter> появляются в начале или в конце <parameter>string</parameter>,
указанные значения будут добавлены как пустое значение массива (<type>array</type>),
либо в первой, либо в последней позиции возвращённого массива (<type>array</type>) соответственно.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<function>explode</function> теперь выбрасывает <classname>TypeError</classname>,
если параметр <parameter>separator</parameter> является пустой строкой (<literal>""</literal>).
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>explode</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Пример 1
$pizza = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // кусок1
echo $pieces[1]; // кусок2
// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Пример возвращаемого значения <function>explode</function></title>
<programlisting role="php">
<![CDATA[
<?php
/*
Строка, которая не содержит разделителя, будет
просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)
array(2)
(
[0] => string(0) ""
[1] => string(0) ""
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Примеры с использованием параметра <parameter>limit</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
$str = 'один|два|три|четыре';
// положительный лимит
print_r(explode('|', $str, 2));
// отрицательный лимит
print_r(explode('|', $str, -1));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => один
[1] => два|три|четыре
)
Array
(
[0] => один
[1] => два
[2] => три
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.bin-safe;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>preg_split</function></member>
<member><function>str_split</function></member>
<member><function>mb_split</function></member>
<member><function>str_word_count</function></member>
<member><function>strtok</function></member>
<member><function>implode</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
-->