# Lightweight Directory Access Protocol

# 简介

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like:

       /usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be:

       cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as:

       country = US
       organization = My Company
       organizationalUnit = Accounts
       commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Lots of information about LDAP can be found at

- » Mozilla

- » OpenLDAP Project

- Internet Engineering Taskforce RFCs » 4510 through » 4519.

The Netscape SDK contains a helpful » Programmer's Guide in HTML format.

- 安装/配置
  - 需求
  - 安装
  - 运行时配置
  - 资源类型
- 预定义常量
- Using the PHP LDAP calls
- LDAP controls
- 示例
  - Basic usage
  - LDAP Controls
- LDAP 函数
  - ldap_8859_to_t61 — Translate 8859 characters to t61 characters
  - ldap_add — Add entries to LDAP directory
  - ldap_add_ext — Add entries to LDAP directory
  - ldap_bind — 绑定 LDAP 目录
  - ldap_bind_ext — Bind to LDAP directory
  - ldap_close — 别名 ldap_unbind
  - ldap_compare — Compare value of attribute found in entry specified with DN
  - ldap_connect — Connect to an LDAP server
  - ldap_connect_wallet — Connect to an LDAP server
  - ldap_control_paged_result — Send LDAP pagination control
  - ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
  - ldap_count_entries — Count the number of entries in a search
  - ldap_count_references — Counts the number of references in a search result
  - ldap_delete — Delete an entry from a directory
  - ldap_delete_ext — Delete an entry from a directory
  - ldap_dn2ufn — Convert DN to User Friendly Naming format
  - ldap_err2str — Convert LDAP error number into string error message
  - ldap_errno — Return the LDAP error number of the last LDAP command
  - ldap_error — Return the LDAP error message of the last LDAP command
  - ldap_escape — Escape a string for use in an LDAP filter or DN
  - ldap_exop — Performs an extended operation
  - ldap_exop_passwd — PASSWD extended operation helper
  - ldap_exop_refresh — Refresh extended operation helper
  - ldap_exop_sync — Performs an extended operation
  - ldap_exop_whoami — WHOAMI extended operation helper
  - ldap_explode_dn — Splits DN into its component parts
  - ldap_first_attribute — Return first attribute
  - ldap_first_entry — Return first result id
  - ldap_first_reference — Return first reference
  - ldap_free_result — Free result memory
  - ldap_get_attributes — Get attributes from a search result entry
  - ldap_get_dn — Get the DN of a result entry
  - ldap_get_entries — Get all result entries
  - ldap_get_option — Get the current value for given option
  - ldap_get_values — Get all values from a result entry
  - ldap_get_values_len — Get all binary values from a result entry
  - ldap_list — Single-level search
  - ldap_mod_add — Add attribute values to current attributes
  - ldap_mod_add_ext — Add attribute values to current attributes
  - ldap_mod_del — Delete attribute values from current attributes
  - ldap_mod_del_ext — Delete attribute values from current attributes
  - ldap_mod_replace — Replace attribute values with new ones
  - ldap_mod_replace_ext — Replace attribute values with new ones
  - ldap_modify — 别名 ldap_mod_replace
  - ldap_modify_batch — Batch and execute modifications on an LDAP entry
  - ldap_next_attribute — Get the next attribute in result
  - ldap_next_entry — Get next result entry
  - ldap_next_reference — Get next reference
  - ldap_parse_exop — Parse result object from an LDAP extended operation
  - ldap_parse_reference — Extract information from reference entry
  - ldap_parse_result — Extract information from result
  - ldap_read — Read an entry
  - ldap_rename — Modify the name of an entry
  - ldap_rename_ext — Modify the name of an entry
  - ldap_sasl_bind — Bind to LDAP directory using SASL
  - ldap_search — Search LDAP tree
  - ldap_set_option — Set the value of the given option
  - ldap_set_rebind_proc — Set a callback function to do re-binds on referral chasing
  - ldap_sort — Sort LDAP result entries on the client side
  - ldap_start_tls — Start TLS
  - ldap_t61_to_8859 — Translate t61 characters to 8859 characters
  - ldap_unbind — Unbind from LDAP directory
- LDAP\Connection — The LDAP\Connection class
- LDAP\Result — The LDAP\Result class
- LDAP\ResultEntry — The LDAP\ResultEntry class

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open