ITPub博客

首页 > 应用开发 > IT综合 > PHP中的LDAP功能函(转)

PHP中的LDAP功能函(转)

原创 IT综合 作者:post0 时间:2007-08-10 12:24:46 0 删除 编辑
PHP中的LDAP功能函(转)[@more@]

一、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>";

}

?>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8225414/viewspace-940555/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Mysql Replication(转)
请登录后发表评论 登录
全部评论
  • 博文量
    2018
  • 访问量
    8225481