mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-18 05:26:57 +08:00
293 lines
12 KiB
HTML
293 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<title>Search LDAP tree</title>
|
|
</head>
|
|
<body class="docs"><div id="layout">
|
|
<div id="layout-content"><div id="function.ldap-search" class="refentry">
|
|
<div class="refnamediv">
|
|
<h1 class="refname">ldap_search</h1>
|
|
<p class="verinfo">(PHP 4, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">ldap_search</span> — <span class="dc-title">Search LDAP tree</span></p>
|
|
|
|
</div>
|
|
|
|
<div class="refsect1 description" id="refsect1-function.ldap-search-description">
|
|
<h3 class="title">说明</h3>
|
|
<div class="methodsynopsis dc-description">
|
|
<span class="methodname"><strong>ldap_search</strong></span>
|
|
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$link_identifier</code></span>
|
|
, <span class="methodparam"><span class="type">string</span> <code class="parameter">$base_dn</code></span>
|
|
, <span class="methodparam"><span class="type">string</span> <code class="parameter">$filter</code></span>
|
|
[, <span class="methodparam"><span class="type">array</span> <code class="parameter">$attributes</code><span class="initializer"> = array("*")</span></span>
|
|
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$attrsonly</code><span class="initializer"> = 0</span></span>
|
|
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$sizelimit</code><span class="initializer"> = -1</span></span>
|
|
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$timelimit</code><span class="initializer"> = -1</span></span>
|
|
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$deref</code><span class="initializer"> = LDAP_DEREF_NEVER</span></span>
|
|
[, <span class="methodparam"><span class="type">array</span> <code class="parameter">$serverctrls</code><span class="initializer"> = array()</span></span>
|
|
]]]]]] ) : <span class="type">resource</span></div>
|
|
|
|
<p class="para rdfs-comment">
|
|
Performs the search for a specified filter on the directory with the scope
|
|
of <strong><code>LDAP_SCOPE_SUBTREE</code></strong>. This is equivalent to searching
|
|
the entire directory.
|
|
</p>
|
|
<p class="para">
|
|
From 4.0.5 on it's also possible to do parallel searches. To do this
|
|
you use an array of link identifiers, rather than a single identifier,
|
|
as the first argument. If you don't want the same base DN and the
|
|
same filter for all the searches, you can also use an array of base DNs
|
|
and/or an array of filters. Those arrays must be of the same size as
|
|
the link identifier array since the first entries of the arrays are
|
|
used for one search, the second entries are used for another, and so
|
|
on. When doing parallel searches an array of search result
|
|
identifiers is returned, except in case of error, then the entry
|
|
corresponding to the search will be <strong><code>FALSE</code></strong>. This is very much like
|
|
the value normally returned, except that a result identifier is always
|
|
returned when a search was made. There are some rare cases where the
|
|
normal search returns <strong><code>FALSE</code></strong> while the parallel search returns an
|
|
identifier.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 parameters" id="refsect1-function.ldap-search-parameters">
|
|
<h3 class="title">参数</h3>
|
|
<p class="para">
|
|
<dl>
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">link_identifier</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
An LDAP link identifier, returned by <span class="function"><a href="ldap_connect.html" class="function">ldap_connect()</a></span>.
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">base_dn</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
The base DN for the directory.
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">filter</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
The search filter can be simple or advanced, using boolean operators in
|
|
the format described in the LDAP documentation (see the <a href="https://wiki.mozilla.org/Mozilla_LDAP_SDK_Programmer%27s_Guide/Searching_the_Directory_With_LDAP_C_SDK" class="link external">» Netscape Directory SDK</a> or
|
|
<a href="http://www.faqs.org/rfcs/rfc4515" class="link external">» RFC4515</a> for full
|
|
information on filters).
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">attributes</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
An array of the required attributes, e.g. <em>array("mail", "sn", "cn")</em>.
|
|
Note that the "dn" is always returned irrespective of which attributes
|
|
types are requested.
|
|
</p>
|
|
<p class="para">
|
|
Using this parameter is much more efficient than the default action
|
|
(which is to return all attributes and their associated values).
|
|
The use of this parameter should therefore be considered good
|
|
practice.
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">attrsonly</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
Should be set to 1 if only attribute types are wanted. If set to 0
|
|
both attributes types and attribute values are fetched which is the
|
|
default behaviour.
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">sizelimit</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
Enables you to limit the count of entries fetched. Setting this to 0
|
|
means no limit.
|
|
</p>
|
|
<blockquote class="note"><p><strong class="note">Note</strong>:
|
|
<p class="para">
|
|
This parameter can NOT override server-side preset sizelimit. You can
|
|
set it lower though.
|
|
</p>
|
|
<p class="para">
|
|
Some directory server hosts will be configured to return no more than
|
|
a preset number of entries. If this occurs, the server will indicate
|
|
that it has only returned a partial results set. This also occurs if
|
|
you use this parameter to limit the count of fetched entries.
|
|
</p>
|
|
</p></blockquote>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">timelimit</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
Sets the number of seconds how long is spend on the search. Setting
|
|
this to 0 means no limit.
|
|
</p>
|
|
<blockquote class="note"><p><strong class="note">Note</strong>:
|
|
<p class="para">
|
|
This parameter can NOT override server-side preset timelimit. You can
|
|
set it lower though.
|
|
</p>
|
|
</p></blockquote>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">deref</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
Specifies how aliases should be handled during the search. It can be
|
|
one of the following:
|
|
<ul class="itemizedlist">
|
|
<li class="listitem">
|
|
<span class="simpara">
|
|
<strong><code>LDAP_DEREF_NEVER</code></strong> - (default) aliases are never
|
|
dereferenced.
|
|
</span>
|
|
</li>
|
|
<li class="listitem">
|
|
<span class="simpara">
|
|
<strong><code>LDAP_DEREF_SEARCHING</code></strong> - aliases should be
|
|
dereferenced during the search but not when locating the base object
|
|
of the search.
|
|
</span>
|
|
</li>
|
|
<li class="listitem">
|
|
<span class="simpara">
|
|
<strong><code>LDAP_DEREF_FINDING</code></strong> - aliases should be
|
|
dereferenced when locating the base object but not during the search.
|
|
</span>
|
|
</li>
|
|
<li class="listitem">
|
|
<span class="simpara">
|
|
<strong><code>LDAP_DEREF_ALWAYS</code></strong> - aliases should be dereferenced
|
|
always.
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">serverctrls</code></dt>
|
|
|
|
<dd>
|
|
|
|
<p class="para">
|
|
Array of <a href="ldap.controls.html" class="link">LDAP Controls</a> to send with the request.
|
|
</p>
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 returnvalues" id="refsect1-function.ldap-search-returnvalues">
|
|
<h3 class="title">返回值</h3>
|
|
<p class="para">
|
|
Returns a search result identifier or <strong><code>FALSE</code></strong> on error.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 changelog" id="refsect1-function.ldap-search-changelog">
|
|
<h3 class="title">更新日志</h3>
|
|
<p class="para">
|
|
<table class="doctable informaltable">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>版本</th>
|
|
<th>说明</th>
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody class="tbody">
|
|
<tr>
|
|
<td>7.3</td>
|
|
<td>
|
|
Support for <code class="parameter">serverctrls</code> added
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 examples" id="refsect1-function.ldap-search-examples">
|
|
<h3 class="title">范例</h3>
|
|
<p class="para">
|
|
The example below retrieves the organizational unit, surname,
|
|
given name and email address for all people in "My Company" where
|
|
the surname or given name contains the substring <var class="varname"><var class="varname">$person</var></var>. This
|
|
example uses a boolean filter to tell the server to look for
|
|
information in more than one attribute.
|
|
<div class="example" id="example-5409">
|
|
<p><strong>Example #1 LDAP search</strong></p>
|
|
<div class="example-contents">
|
|
<div class="phpcode"><pre><span style="color: #000000">
|
|
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// $ds is a valid link identifier for a directory server<br /><br />// $person is all or part of a person's name, eg "Jo"<br /><br /></span><span style="color: #0000BB">$dn </span><span style="color: #007700">= </span><span style="color: #DD0000">"o=My Company, c=US"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$filter</span><span style="color: #007700">=</span><span style="color: #DD0000">"(|(sn=</span><span style="color: #0000BB">$person</span><span style="color: #DD0000">*)(givenname=</span><span style="color: #0000BB">$person</span><span style="color: #DD0000">*))"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$justthese </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"ou"</span><span style="color: #007700">, </span><span style="color: #DD0000">"sn"</span><span style="color: #007700">, </span><span style="color: #DD0000">"givenname"</span><span style="color: #007700">, </span><span style="color: #DD0000">"mail"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$sr</span><span style="color: #007700">=</span><span style="color: #0000BB">ldap_search</span><span style="color: #007700">(</span><span style="color: #0000BB">$ds</span><span style="color: #007700">, </span><span style="color: #0000BB">$dn</span><span style="color: #007700">, </span><span style="color: #0000BB">$filter</span><span style="color: #007700">, </span><span style="color: #0000BB">$justthese</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$info </span><span style="color: #007700">= </span><span style="color: #0000BB">ldap_get_entries</span><span style="color: #007700">(</span><span style="color: #0000BB">$ds</span><span style="color: #007700">, </span><span style="color: #0000BB">$sr</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #DD0000">"count"</span><span style="color: #007700">].</span><span style="color: #DD0000">" entries returned\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span>
|
|
</span>
|
|
</pre></div>
|
|
</div>
|
|
|
|
</div>
|
|
</p>
|
|
</div>
|
|
|
|
|
|
</div></div></div></body></html> |