PHP中的LDAP功能函

王朝php·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一、LDAP简介

LDAP是轻量级目录访问协议,应用于目录服务中.目录是一种特殊的数据库,它

将数据信息保存在一个树状结构中。这种结构和计算机硬盘的目录结构相似。在

一个全球的目录中,根目录就是整个世界,第一级子目录就是各个国家.底一级

的目录结构中就包含有记录公司、组织或者地方的相关信息的目录项。更低一级

的目录结构中的目录项就可以记录个人、设备或者文档的信息.

为了访问存放在硬盘上一个子目录中的文件,可能要用到下面的引用方法:

/usr/local/myapp/docs

上面的引用方法是用"/"将目录节点分开,读的顺序是从左到右.

与访问文件的引用方法相对应,访问一个LDAP目录中的目录项的引用就是可区分

名(distinguished name),简写为"DN".下面就是一个例子:

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

上面的引用方法是用逗号来将各个目录节点分开,读的顺序是从右到左,就象下

面的读法:

country = US

organization = My Company

organizationalUnit = Accounts

commonName = John Smith

就象没有规定死的规则来组织硬盘上的目录结构一样,在一个目录服务器可以建立

很多符合目的要求的信息模型结构,但是建立信息模型结构是要有一定的约定.这

就是说,如果要写出访问目录服务器中信息的代码,就必需了解目录服务器中的信

息模型结构,这和使用数据库进行开发是一样的道理.

完整的例子

例子是从目录服务器中检索出属性"sn"以"S"为第一个字母的所有目录项,并显

示目录项中"cn"和"mail"属性的属性值.

Example 1. LDAP search example

t?php

// basic sequence with LDAP is connect, bind, search, interpret search

// result, close connection

echo "th3>LDAP query testt/h3>";

echo "Connecting ...";

$ds=ldap_connect("localhost"); // must be a valid LDAP server!

echo "connect result is ".$ds."tp>";

if ($ds) {

echo "Binding ...";

$r=ldap_bind($ds); // this is an "anonymous" bind, typically

// read-only access echo "Bind result is

echo "Bind result is ".$r."tp>";

echo "Searching for (sn=S*) ...";

// Search surname entry

$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");

echo "Search result is ".$sr."tp>";

echo "Number of entires returned is ".ldap_count_entries($ds,$sr)."tp>";

echo "Getting entries ...tp>";

$info = ldap_get_entries($ds, $sr);

echo "Data for ".$info["count"]." items returned:tp>";

for ($i=0; $i<$info["count"]; $i++) {

echo "dn is: ". $info[$i]["dn"] ."tbr>";

echo "first cn entry is: ". $info[$i]["cn"][ 0] ."tbr>";

echo "first email entry is: ". $info[$i]["mail"][ 0] ."tp>";

}

echo "Closing connection";

ldap_close($ds);

} else {

echo "th4>Unable to connect to LDAP servert/h4>";

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航