<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.ldap.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.ldap-search.php',
    1 => 'ldap_search',
    2 => 'Sucht im LDAP-Baum',
  ),
  'up' => 
  array (
    0 => 'ref.ldap.php',
    1 => 'LDAP Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.ldap-sasl-bind.php',
    1 => 'ldap_sasl_bind',
  ),
  'next' => 
  array (
    0 => 'function.ldap-set-option.php',
    1 => 'ldap_set_option',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/ldap/functions/ldap-search.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<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, PHP 8)</p><p class="refpurpose"><span class="refname">ldap_search</span> &mdash; <span class="dc-title">Sucht im LDAP-Baum</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.ldap-search-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>ldap_search</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="class.ldap-connection.php" class="type LDAP\Connection">LDAP\Connection</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$ldap</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$base</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$filter</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$attributes</code><span class="initializer"> = []</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$attributes_only</code><span class="initializer"> = 0</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$sizelimit</code><span class="initializer"> = -1</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$timelimit</code><span class="initializer"> = -1</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$deref</code><span class="initializer"> = <strong><code><a href="ldap.constants.php#constant.ldap-deref-never">LDAP_DEREF_NEVER</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$controls</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="class.ldap-result.php" class="type LDAP\Result">LDAP\Result</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Führt eine Suche für einen gegebenen Filter im Verzeichnis mit dem
   Geltungsbereichmit von <strong><code>LDAP_SCOPE_SUBTREE</code></strong> durch. Das
   ist äquivalent zu einer Suche im ganzen Verzeichnis.
  </p>
   <p class="para">Es ist auch möglich, parallele Suchen durchzuführen. In diesem Fall muss der erste Parameter ein Array von
<span class="classname"><a href="class.ldap-connection.php" class="classname">LDAP\Connection</a></span>-Instanzen sein, anstatt einer einzelnen.
Wenn die Suchen nicht alle den gleichen Basis-DN und Filter verwenden sollen, kann stattdessen ein Array von Basis-DNs und/oder ein Array von Filtern als Parameter übergeben werden.
Diese Arrays müssen die gleiche Größe haben wie das Array von <span class="classname"><a href="class.ldap-connection.php" class="classname">LDAP\Connection</a></span>-Instanzen,
da die ersten Einträge der Arrays für eine Suche verwendet werden, die zweiten Einträge für eine andere und so weiter.
Bei parallelen Suchen wird ein Array von <span class="classname"><a href="class.ldap-result.php" class="classname">LDAP\Result</a></span>-Instanzen zurückgegeben, außer im Fall eines Fehlers, dann ist der Rückgabewert <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.</p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.ldap-search-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">ldap</code></dt>
     <dd>
      <p class="para">
       Eine <span class="classname"><a href="class.ldap-connection.php" class="classname">LDAP\Connection</a></span>Instanz, die von  <span class="function"><a href="function.ldap-connect.php" class="function">ldap_connect()</a></span> zurückgegeben wurde.
      </p>
     </dd>
    
    
     <dt><code class="parameter">base</code></dt>
     <dd>
      <p class="para">
       Der Basis-DN für das Verzeichnis.
      </p>
     </dd>
    
    
     <dt><code class="parameter">filter</code></dt>
     <dd>
      <p class="para">
       Der Suchfilter kann einfach oder erweitert sein und boolesche
       Operatoren in dem Format verwenden, das in der LDAP-Dokumentation
       beschrieben wird (siehe das
       <a href="https://wiki.mozilla.org/Mozilla_LDAP_SDK_Programmer%27s_Guide/Searching_the_Directory_With_LDAP_C_SDK" class="link external">&raquo;&nbsp;Netscape Directory SDK</a>
       oder <a href="https://datatracker.ietf.org/doc/html/rfc4515" class="link external">&raquo;&nbsp;RFC4515</a> für vollständige
       Informationen zu Filtern).
      </p>
     </dd>
    
    
     <dt><code class="parameter">attributes</code></dt>
     <dd>
      <p class="para">
       Ein Array von erforderlichen Merkmalen, z. B. <code class="literal">array(&quot;mail&quot;,
       &quot;sn&quot;, &quot;cn&quot;)</code>. Es ist zu beachten, dass der &quot;dn&quot; immer
       zurückgegeben wird, unabhängig davon, welche Merkmalstypen angefragt
       wurden.
      </p>
      <p class="para">
       Die Verwendung dieses Parameters ist effizienter als die Standardaktion
       (die alle Merkmale und deren assoziierte Werte zurückgibt). Die
       Verwendung dieses Parameters sollte daher als gute Praxis eingestuft
       werden.
      </p>
     </dd>
    
    
     <dt><code class="parameter">attributes_only</code></dt>
     <dd>
      <p class="para">
       Sollte auf 1 gesetzt werden, wenn nur Merkmalstypen erwünscht sind.
       Wird 0 übergeben, werden sowohl Merkmalstypen als auch Merkmalswerte
       abgerufen, was das Standardverhalten ist.
      </p>
     </dd>
    
    
     <dt><code class="parameter">sizelimit</code></dt>
     <dd>
      <p class="para">
       Ermöglicht die Begrenzung der Anzahl der abgerufenen Einträge. Wird
       hier 0 übergeben, besteht keine Begrenzung.
      </p>
      <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
       <p class="para">
        Dieser Parameter kann ein serverseitig voreingestelltes sizelimit
        NICHT überschreiben. Es kann allerdings kleiner gewählt werden.
       </p>
       <p class="para">
        Verzeichnis-Server können so konfiguriert werden, dass sie nicht mehr
        als eine voreingestellte Anzahl von Einträgen zurückgeben. Wenn dies
        der Fall ist, dann zeigt der Server an, dass nur eine teilweise
        Ergebnismenge zurückgegeben wurde. Das geschieht ebenfalls, wenn
        dieser Parameter verwendet wird, um die Zahl der abgerufenen Einträge
        zu begrenzen.
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">timelimit</code></dt>
     <dd>
      <p class="para">
       Setzt die Anzahl von Sekunden, die auf die Suche verwendet wird. Die
       Übergabe von 0 bedeutet keine Begrenzung.
      </p>
      <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
       <p class="para">
        Dieser Parameter kann ein serverseitig voreingestelltes timelimit
        NICHT überschreiben. Es kann allerdings kleiner gewählt werden.
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">deref</code></dt>
     <dd>
      <p class="para">
       Gibt an, wie Aliase während der Suche behandelt werden sollen. Es kann
       einen der folgenden Werte annehmen:
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="ldap.constants.php#constant.ldap-deref-never">LDAP_DEREF_NEVER</a></code></strong> - (standard) Aliase werden nie
          dereferenziert.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="ldap.constants.php#constant.ldap-deref-searching">LDAP_DEREF_SEARCHING</a></code></strong> - Aliase sollen während
          der Suche dereferenziert werden, aber nicht wenn das Basis-Objekt
          der Suche lokalisiert wird.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="ldap.constants.php#constant.ldap-deref-finding">LDAP_DEREF_FINDING</a></code></strong> - Aliase sollen für die
          Lokalisierung des Basis-Objekts dereferenziert werden, aber nicht
          während der Suche.
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="ldap.constants.php#constant.ldap-deref-always">LDAP_DEREF_ALWAYS</a></code></strong> - Aliase sollen immer
          dereferenziert werden.
         </span>
        </li>
       </ul>
      </p>
     </dd>
    
    
     <dt><code class="parameter">controls</code></dt>
     <dd>
      <p class="para">
       Ein Array von <a href="ldap.controls.php" class="link">LDAP-Steuerbefehlen</a>,
       die mit der Anfrage versendet werden sollen.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.ldap-search-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt eine <span class="classname"><a href="class.ldap-result.php" class="classname">LDAP\Result</a></span>-Instanz oder ein Array von <span class="classname"><a href="class.ldap-result.php" class="classname">LDAP\Result</a></span>-Instanzen zurück. Bei einem Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.ldap-search-changelog">
  <h3 class="title">Changelog</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Beschreibung</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
 <td>8.1.0</td>
 <td>
  Der Parameter <code class="parameter">ldap</code> erwartet nun eine <span class="classname"><a href="class.ldap-connection.php" class="classname">LDAP\Connection</a></span>-Instanz;
  vorher wurde eine gültige <code class="literal">ldap link</code>-<a href="language.types.resource.php" class="link">Ressource</a> erwartet.
 </td>
</tr>

      <tr>
 <td>8.1.0</td>
 <td>
  Gibt nun eine <span class="classname"><a href="class.ldap-result.php" class="classname">LDAP\Result</a></span>-Instanz zurück; vorher
  wurde eine <a href="language.types.resource.php" class="link">Ressource</a> zurückgegeben.
 </td>
</tr>

      <tr>
 <td>8.0.0</td>
 <td>
  <code class="parameter">controls</code> ist nun nullable (akzeptiert den <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>-Wert); vorher war der Standardwert <code class="literal">[]</code>.
 </td>
</tr>

      <tr>
       <td>7.3.0</td>
       <td>
        Die Unterstützung für <code class="parameter">controls</code> wurde
        hinzugefügt.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.ldap-search-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   Das untenstehende Beispiel liefert die Organisationseinheit, den
   Familiennamen, den Vornamen und die E-Mail-Adresse aller Personen in &quot;Meine
   Firma&quot;, deren Familien- oder Vorname die Zeichenkette
   <var class="varname">$person</var> enhält. In diesem Beispiel wird ein boolescher
   Filter verwendet, um den Server zu veranlassen, nach Informationen in mehr
   als einem Merkmal zu suchen.
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 LDAP-Suche</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// $ds ist eine gültige LDAP\Connection-Instanz für einen Verzeichnis-Server<br /><br />// $person ist ein Teil des Namens oder der vollständige Name einer Person,<br />// z. B. "Jo"<br /><br /></span><span style="color: #0000BB">$dn </span><span style="color: #007700">= </span><span style="color: #DD0000">"o=Meine Firma, c=DE"</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">*)(vorname=</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">"vorname"</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">" Einträge gefundene\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


</div><?php manual_footer($setup); ?>