Files
php-doc-ru/reference/ldap/functions/ldap-search.xml
2022-06-29 14:55:51 +03:00

254 lines
10 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: b7cbd468cb4c46d55d43a44cade0eb4590d25dea Maintainer: bfl Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.ldap-search" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>ldap_search</refname>
<refpurpose>Поиск по LDAP дереву</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>LDAP\Result</type><type>array</type><type>false</type></type><methodname>ldap_search</methodname>
<methodparam><type class="union"><type>LDAP\Connection</type><type>array</type></type><parameter>ldap</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>base</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>filter</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>attributes</parameter><initializer>[]</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>attributes_only</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>sizelimit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>timelimit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>deref</parameter><initializer><constant>LDAP_DEREF_NEVER</constant></initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>controls</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Выполняет поиск для указанного фильтра в директории с границами
<constant>LDAP_SCOPE_SUBTREE</constant>. Эквивалентно поиску по всему каталогу.
</para>
&ldap.return-result-array-info;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>ldap</parameter></term>
<listitem>
<para>
&ldap.parameter.ldap;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>base</parameter></term>
<listitem>
<para>
Базовое DN для каталога.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>filter</parameter></term>
<listitem>
<para>
Поисковый фильтр может быть простым или расширенным, используя булевы
операторы в формате, описанном в документации LDAP
(смотрите <link xlink:href="&url.ldap.filters;">Netscape Directory SDK</link> или
<link xlink:href="&url.rfc;4515">RFC4515</link> для полной информации о фильтрах).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attributes</parameter></term>
<listitem>
<para>
Массив необходимых атрибутов, например, <literal>array("mail", "sn", "cn")</literal>.
Обратите внимание, что "dn" всегда возвращается, независимо от того,
какие типы атрибутов требуются.
</para>
<para>
Использование этого параметра намного более эффективно, чем действие по умолчанию
(которое должно возвратить все атрибуты и присвоенные им значения).
Поэтому использование этого параметра считается хорошей практикой.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attributes_only</parameter></term>
<listitem>
<para>
Должен быть равен 1, если требуются только типы атрибута.
Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>sizelimit</parameter></term>
<listitem>
<para>
Позволяет ограничить количество выбранных записей. Установка этого параметра
равным 0 означает, что ограничение отсутствует.
</para>
<note>
<para>
Этот параметр НЕ может переопределять предустановку sizelimit на стороне
сервера. Хотя его можно установить ниже.
</para>
<para>
Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы
возвратить не больше, чем предварительно установленное число записей.
Если это произойдёт, то сервер укажет, что возвратил только частичный набор
результатов. Это также происходит, если Вы используете этот параметр чтобы
ограничить количество выбранных записей.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>timelimit</parameter></term>
<listitem>
<para>
Устанавливает число секунд, ограничивающее процесс поиска. Установка этого
параметра равным 0 означает, что ограничение отсутствует.
</para>
<note>
<para>
Этот параметр НЕ может переопределять предустановку timelimit на стороне
сервера. Хотя его можно установить ниже.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>deref</parameter></term>
<listitem>
<para>
Определяет как псевдонимы должны быть обработаны во время поиска. Может быть
одним из следующих:
<itemizedlist>
<listitem>
<simpara>
<constant>LDAP_DEREF_NEVER</constant> - (по умолчанию) псевдонимы никогда не разыменовываются.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_SEARCHING</constant> - псевдонимы должны быть разыменованы во время поиска,
но не при определении местоположения базового объекта поиска.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_FINDING</constant> - псевдонимы должны быть разыменованы
при определении местоположения базового объекта, но не во время поиска.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>LDAP_DEREF_ALWAYS</constant> - псевдонимы должны разыменовываться всегда.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>controls</parameter></term>
<listitem>
<para>
Массив <link linkend="ldap.controls">управляющих констант LDAP</link> для отправки в запросе.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&ldap.return-result-array;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&ldap.changelog.ldap-object;
&ldap.changelog.return-result-object;
&ldap.changelog.controls-nullable;
<row>
<entry>7.3.0</entry>
<entry>
Добавлена поддержка параметра <parameter>controls</parameter>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Пример ниже получает организационную единицу, фамилию, имя и адрес
электронной почты для всех людей в "My Company", где фамилия или имя содержат
подстроку <varname>$person</varname>. Этот пример использует логический фильтр,
чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.
<example>
<title>LDAP поиск</title>
<programlisting role="php">
<![CDATA[
<?php
// $ds допустимый экземпляр LDAP\Connection
// $person всё или часть имени человека, н-р "Jo"
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." записей возвращено\n";
?>
]]>
</programlisting>
</example>
</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
-->