<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.ldap-get-attributes" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>ldap_get_attributes</refname>
  <refpurpose>Get attributes from a search result entry</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>array</type><methodname>ldap_get_attributes</methodname>
   <methodparam><type>LDAP\Connection</type><parameter>ldap</parameter></methodparam>
   <methodparam><type>LDAP\ResultEntry</type><parameter>entry</parameter></methodparam>
  </methodsynopsis>
  <para>
   Reads attributes and values from an entry in the search result. 
  </para>
  <para>
   Having located a specific entry in the directory, you can find out what
   information is held for that entry by using this call. You would use this
   call for an application which "browses" directory entries and/or where you
   do not know the structure of the directory entries. In many applications
   you will be searching for a specific attribute such as an email address or
   a surname, and won't care what other data is held.
   <informalexample>
    <programlisting>
<![CDATA[
return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = (i+1)th value of the attribute
]]>
    </programlisting>
   </informalexample>
  </para>
 </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>entry</parameter></term>
     <listitem>
      <para>
       &ldap.parameter.entry;
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns a complete entry information in a multi-dimensional array.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     &ldap.changelog.ldap-object;
     &ldap.changelog.entry-object;
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>
     Show the list of attributes held for a particular directory entry
    </title>
    <programlisting role="php">
<![CDATA[
<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributes held for this entry:<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>ldap_first_attribute</function></member>
    <member><function>ldap_next_attribute</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
-->
