ldap php,PHP-LDAP 学习笔记

resource ldap_connect ([ string $hostname = NULL [, int $port = 389 ]] )

使用指定的主机名($hostname)和端口($port)连接到LDAP服务器。

$hostname

主机名,如果服务器端是 OpenLDAP 2.x.x 或更高版本,那么还可以使用 ldap://hostname/ 格式(URL格式)。

要使用SSL连接,那么必须确保OpenLDAP和PHP都带有SSL支持,并使用 ldaps://hostname/ 的格式。

如果使用空格分隔的主机名列表(比如"192.168.0.100:389 192.168.0.101"),那么此函数将依次尝试直到连接成功为止。

$port

连接的端口(默认为389)。在使用URL格式的时候不需要使用此参数,直接在URL里面指明即可(ldap://hostname:port/)。

连接成功则返回一个LDAP连接标识符,连接失败则返回 FALSE 。

如果服务器端是 OpenLDAP 2.x.x 或更高版本,那么此函数将始终返回一个LDAP连接标识符,而永远不会失败。实际的连接动作将在接下来调用 ldap_* 函数[通常是ldap_bind()]时执行。

如果不带任何参数调用此函数,则返回上一次连接已经打开的连接标识符。

bool ldap_bind ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL ]] )

使用指定的RDN($bind_rdn)和密码($bind_password)绑定到LDAP目录。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$bind_rdn

$bind_password

绑定时使用的RDN(Relative Distinguished Name)和密码。如果未指定则使用匿名认证。

绑定成功返回 TRUE 否则返回 FALSE 。

string ldap_error ( resource $link_identifier )

检索LDAP操作的错误信息。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

返回指定的连接标识符上最近一次LDAP操作的错误信息。

bool ldap_get_option ( resource $link_identifier , int $option , mixed &$retval )

bool ldap_set_option ( resource $link_identifier , int $option , mixed $newval )

获取/设置LDAP选项的值。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$option

LDAP选项名称,主要的选项及其数据类型如下:

LDAP_OPT_DEREF(int)

搜索的时候如何处理别名,取值范围如下:LDAP_DEREF_NEVER(0,默认值), LDAP_DEREF_SEARCHING(1), LDAP_DEREF_FINDING(2), LDAP_DEREF_ALWAYS(3)

LDAP_OPT_NETWORK_TIMEOUT(int)

网络超时秒数,LDAP_NO_LIMIT(0,默认值)表示永不超时。

LDAP_OPT_PROTOCOL_VERSION(int)

指定使用的LDAP协议版本,取值范围如下:LDAP_VERSION2(2,默认值), LDAP_VERSION3 (3)。

LDAP_OPT_REFERRALS(bool)

LDAP库是否自动追随LDAP服务器返回的引用,取值范围如下:TRUE(1,默认值), FALSE(0)。

&$retval

接受选项值的变量

$newval

选项的新值

获取/设置成功返回 TRUE 否则返回 FALSE 。

bool ldap_add ( resource $link_identifier , string $dn , array $entry )

bool ldap_delete ( resource $link_identifier , string $dn )

在LDAP目录中添加/删除一个项。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$dn

将要添加/删除的项目名称(distinguished name)。

$entry

指定新项内容的关联数组(attribute=>value)。如果value也是一个数组,那么必须是从0开始的索引数组。例如:

$entry["bool"]='TRUE';

$entry["int"]='-3';

$entry["mail"]='jonj@example.com';

$entree["tel"][0] = "2222222";

$entree["tel"][1] = "4444444";

添加/删除成功返回 TRUE 否则返回 FALSE 。

mixed ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value )

检查LDAP目录项$dn的$attribute属性值与给定的$value是否相同。注意:不能用来比较二进制数据!

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$dn

LDAP项的名称(distinguished name)

$attribute

属性名

$value

给定的值

相同返回 TRUE ,不同返回 FALSE ,遇见错误返回 -1

resource ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

resource ldap_search ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

使用指定的过滤器搜索LDAP目录。三个函数的不同之处在于搜索范围不同:

read仅搜索$base_dn本身(LDAP_SCOPE_BASE),相当于从目录中读取一个条目(entry)。

list仅搜索$base_dn的下一级对象(LDAP_SCOPE_ONELEVEL),不包含本身,相当于"ls"命令。

search搜索$base_dn本身及其所有子对象(LDAP_SCOPE_SUBTREE),相当于搜索整个目录树。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$base_dn

将要被搜索的目录的DN

$filter

搜索过滤器。比如"(objectClass=*)"表示搜索所有条目(对于read函数则表示所有属性)。

其语法规则在RFC2254中描述,例如:"(|(sn=$person*)(givenname=$person*))"

$attributes

需要检索的属性名称数组,比如:array("mail", "sn", "cn")。

注意:不管有没有指定,"dn"属性的值总会被返回。

如果不指定此参数,那么将返回所有的属性值。

$attrsonly

默认值"0"表示同时获取属性的类型(attribute type)和属性的值(attribute value)。

非默认值"1"表示仅获取属性的类型(attribute type)。

$sizelimit

限定最多返回多少条记录。默认值"0"表示没有限制。注意:这个参数不能超越服务器的限制。

$timelimit

限定搜索操作最大允许进行多少秒。默认值"0"表示没有限制。注意:这个参数不能超越服务器的限制。

$deref

指定搜索的时候如何处理别名。取值范围如下:

LDAP_DEREF_NEVER(默认)

在搜索中或者查找那基础对象时做不复引用别名

LDAP_DEREF_SEARCHING

在基础对象的附属的搜索中而不是查找那基础对象时做复引用别名

LDAP_DEREF_FINDING

在基础对象而不是其附属的搜索中做复引用别名

LDAP_DEREF_ALWAYS

在搜索中或者查找那基础对象时做都复引用别名

成功返回一个结果集的资源描述符,通常被其他函数以$result_identifier引用,失败返回FALSE

array ldap_get_entries ( resource $link_identifier , resource $result_identifier )

返回前一次搜索操作的结果集,包括每一项的属性和属性值。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

$result_identifier

ldap_read/ldap_list/ldap_search函数返回的结果集的资源描述符。

成功返回一个包含结果集的多维数组,失败返回FALSE。

注意:结果集数组的属性索引将被转换成小写字母(对于LDAP来说属性是大小写无关的)。

结果集数组的结构如下所示:return_value["count"] = 结果集中的条目总数(包含第零项)

return_value[0] : 对结果集中第零项(一般不同于后面的常规项)的详细信息的引用

return_value[i]["dn"] = 结果集中第 i 个条目的 DN

return_value[i]["count"] = 结果集中第 i 个条目的属性数量

return_value[i][j] = 结果集中第 i 个条目的第 j 个属性

return_value[i]["attribute"]["count"] = 结果集中第 i 个条目的"attribute"属性的值的数量

return_value[i]["attribute"][j] = 结果集中第 i 个条目的"attribute"属性的第 j 个值

bool ldap_unbind ( resource $link_identifier )

解除绑定,也就是关闭LDAP连接。

$link_identifier

ldap_connect()函数返回的LDAP连接标识符

成功返回 TRUE 否则返回 FALSE 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值