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/sscanf.xml

166 lines
5.6 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: 4225e50bc391ddba99e367c231463da0dc04357d Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.sscanf" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>sscanf</refname>
<refpurpose>Разбирает строку по условиям формата</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>int</type><type>null</type></type><methodname>sscanf</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam rep="repeat"><type>mixed</type><parameter role="reference">vars</parameter></methodparam>
</methodsynopsis>
<para>
Функция <function>sscanf</function> — аналог функции
<function>printf</function> для входных данных.
Функция <function>sscanf</function> сканирует строку <parameter>string</parameter>
и интерпретирует строку по условиям формата <parameter>format</parameter>.
</para>
<para>
Любые пробельные символы в строке формата соответствуют любым
пробельным символам во входной строке. Это значит, что даже символ
табуляции (<literal>\t</literal>) в строке формата соответствует одному
символу пробела во входной строке.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Входная строка (<type>string</type>) для разбора.
</para>
</listitem>
</varlistentry>
&strings.scanf.parameter.format;
<varlistentry>
<term><parameter>vars</parameter></term>
<listitem>
<para>
Необязательные переменные, которые передаются по ссылке
и которые будут содержать значения с результатами разбора строки.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает массив с результатами разбора,
если в функцию передали только два аргумента.
Функция вернёт количество присвоенных значений,
если передали необязательные аргументы.
Необязательные аргументы требуется передавать по ссылке.
</para>
<para>
Если параметр <parameter>format</parameter> ожидает больше подстрок,
чем доступно в параметре <parameter>string</parameter>,
вернётся значение &null;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>sscanf</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Получаем серийный номер
list($serial) = sscanf("SN/2350001", "SN/%d");
// и дату изготовления
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Узел $serial изготовили: $year-" . substr($month, 0, 3) . "-$day\n";
?>
]]>
</programlisting>
</example>
</para>
<para>
Функция вернёт количество присвоенных значений,
если передали необязательные аргументы.
</para>
<para>
<example>
<title>
Пример использования функции <function>sscanf</function> с необязательными аргументами
</title>
<programlisting role="php">
<![CDATA[
<?php
// Получаем имя автора и формируем запись в формате DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>printf</function></member>
<member><function>sprintf</function></member>
<member><function>fprintf</function></member>
<member><function>vprintf</function></member>
<member><function>vsprintf</function></member>
<member><function>vfprintf</function></member>
<member><function>fscanf</function></member>
<member><function>number_format</function></member>
<member><function>date</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
-->