Files
php-doc-ru/reference/imap/functions/imap-search.xml

284 lines
9.3 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"?>
<!-- $Revision$ -->
<!-- EN-Revision: e2f50c240bebc502a3d990d73633a6141f3bd9fd Maintainer: rjhdby Status: ready -->
<!-- Reviewed: yes Maintainer: lex -->
<refentry xml:id="function.imap-search" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>imap_search</refname>
<refpurpose>Получить сообщения, удовлетворяющие заданным критериям</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>false</type></type><methodname>imap_search</methodname>
<methodparam><type>resource</type><parameter>imap</parameter></methodparam>
<methodparam><type>string</type><parameter>criteria</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>SE_FREE</constant></initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>charset</parameter><initializer>""</initializer></methodparam>
</methodsynopsis>
<para>
Эта функция производит поиск в текущем почтовом ящике
открытом в потоке <acronym>IMAP</acronym>.
</para>
<para>
К примеру, чтобы найти все неотвеченные сообщения посланные
от мамы (Mom), нужно будет использовать "UNANSWERED FROM mom".
Поиск регистронезависимый. Приведённый список критериев извлечён
из исходных кодов UW c-client и может быть неполным или не совсем
точным (дополнительно смотрите <link xlink:href="&url.rfc;1176">RFC1176</link>,
секция "tag SEARCH search_criteria").
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&imap.imap-stream.description;
<varlistentry>
<term><parameter>criteria</parameter></term>
<listitem>
<para>
Строка, разделённая пробелами, в которой допустимо использовать следующие
ключевые слова. Любые аргументы, состоящие из нескольких слов, должны
быть заключены в двойные кавычки (например
<literal>FROM "joey smith"</literal>). Результат будет совпадать со всеми
заданными в параметре <parameter>criteria</parameter> критериями.
<itemizedlist>
<listitem>
<simpara>
ALL - возвращать все сообщения, соответствующие остальным критериям
</simpara>
</listitem>
<listitem>
<simpara>
ANSWERED - сообщения с выставленным флагом \\ANSWERED
</simpara>
</listitem>
<listitem>
<simpara>
BCC "string" - сообщения в поле Bcc: которых присутствует "string"
</simpara>
</listitem>
<listitem>
<simpara>
BEFORE "date" - сообщения с Date: до "date"
</simpara>
</listitem>
<listitem>
<simpara>
BODY "string" - сообщения содержащие "string" в теле
</simpara>
</listitem>
<listitem>
<simpara>
CC "string" - сообщения в поле Cc: которых присутствует "string"
</simpara>
</listitem>
<listitem>
<simpara>
DELETED - удалённые сообщения
</simpara>
</listitem>
<listitem>
<simpara>
FLAGGED - сообщения с установленным флагом \\FLAGGED (иногда называют
"Срочное" или "Важное")
</simpara>
</listitem>
<listitem>
<simpara>
FROM "string" - сообщения в поле From: которых присутствует "string"
</simpara>
</listitem>
<listitem>
<simpara>
KEYWORD "string" - сообщения с ключевым словом "string"
</simpara>
</listitem>
<listitem>
<simpara>
NEW - новые сообщения
</simpara>
</listitem>
<listitem>
<simpara>
OLD - старые сообщения
</simpara>
</listitem>
<listitem>
<simpara>
ON "date" - сообщения с Date: равным "date"
</simpara>
</listitem>
<listitem>
<simpara>
RECENT - означает сообщения с выставленным флагом \\RECENT
</simpara>
</listitem>
<listitem>
<simpara>
SEEN - прочтённые сообщения (установлен флаг \\SEEN)
</simpara>
</listitem>
<listitem>
<simpara>
SINCE "date" - сообщения с Date: после "date"
</simpara>
</listitem>
<listitem>
<simpara>
SUBJECT "string" - сообщения в поле Subject: которых присутствует "string"
</simpara>
</listitem>
<listitem>
<simpara>
TEXT "string" - сообщения с текстом "string"
</simpara>
</listitem>
<listitem>
<simpara>
TO "string" - сообщения в поле To: которых присутствует "string"
</simpara>
</listitem>
<listitem>
<simpara>
UNANSWERED - неотвеченные сообщения
</simpara>
</listitem>
<listitem>
<simpara>
UNDELETED - не удалённые сообщения
</simpara>
</listitem>
<listitem>
<simpara>
UNFLAGGED - сообщения без установленных флагов
</simpara>
</listitem>
<listitem>
<simpara>
UNKEYWORD "string" - сообщения, не имеющие ключевого слова "string"
</simpara>
</listitem>
<listitem>
<simpara>
UNSEEN - непрочитанные сообщения
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Корректные значения <parameter>flags</parameter> - это
<constant>SE_UID</constant>, что приведёт к тому, что в возвращённом
массиве вместо номеров сообщений будут содержаться их UID.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>charset</parameter></term>
<listitem>
<para>
Кодировка MIME, в которой будет происходить поиск.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает номера сообщений или их UID.
</para>
<para>
Возвращает &false;, если сообщения не найдены, либо критерии указанные
в <parameter>criteria</parameter> некорректны.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="imap-search.examples">
<title>Пример использования <function>imap_search</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);
$some = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($conn, 'ALL');
$uids = imap_search($conn, 'ALL', SE_UID);
print_r($some);
print_r($msgnos);
print_r($uids);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Array
(
[0] => 4
[1] => 6
[2] => 11
)
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
Array
(
[0] => 1
[1] => 4
[2] => 6
[3] => 8
[4] => 11
[5] => 12
)
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>imap_listscan</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
-->