登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>程序开发>PHP教程>正文
 
使用PHP连接LDAP服务器

http://www.dbit.cn 2008/4/23 15:40:41  来源:本站  编辑:叶子
 

  在经过认证后,我们就可以使用ldap_search()函数来执行查询,产生的$search_id是我们搜索的连接识别符。

  然后,我们使用ldap_get_entries()函数将结果集赋给$result_array变量。这样我们能够以逻辑的方式排列信息,以便显示。

  格式化输出:

  在执行完LDAP搜索后,返回的数据是以查找的顺序排列的。不过我们在排序时没有SQL这样方便,使用ORDER BY语句就可以了。通常多数公共的LDAP目录都没有标准的大小规范。排序是基于字符的ASCII值,我们必须将字符全部格式化为小写,以便按字母的顺序输出。

  LDAP结果集是一个多维的数组,脚本中的$result_array的结构如下:
  $result_array[0]["cn"] [0] = "Dannie Stanley"
  ["dn"] [0] = "uid=dannie,dc=spinweb.net"
  ["givenname"][0] = "Dannie"
  ["sn"] [0] = "Stanley"
  ["mail"] [0] = "danSPAM@spinweb.net"
  $result_array[1]["cn"] [0] = "Michael Reynolds"
  ["dn"] [0] = "uid=michael,dc=spinweb.net"
  ["givenname"][0] = "Michael"
  ["sn"] [0] = "Reynolds"
  ["mail"] [0] = "michaelSPAM@spinweb.net" 

  数据以这种格式存放的原因是每个属性都可能有超过一个值(象树的结构)。例如,如果我的名
字是‘Dannie’,我还可以在LDAP中增加一些属性,例如:

  $result_array[0]["cn"] [0] = "Dannie Stanley"
  ["dn"] [0] = "uid=dannie,dc=spinweb.net"
  ["givenname"][0] = "Dannie"
  ["givenname"][0] = "Dan"
  ["sn"] [0] = "Stanley"
  ["mail"] [0] = "danSPAM@spinweb.net"

  在我们的搜索中,我们只关心每个属性的首个值,因此除了dn只有一个值外,其它我们只使用每
个属性中序号为0的值。以下就是属性和它们含义的简单列表:

  "cn" = Common Name
  "dn" = Distinguished Name
  "givenname" = First Name
  "sn" = Last Name
  "mail" = Email地址


  <?php 

  //如果搜索成功,将结果排序 
  if($result_array) 
  { 
  for($i=0; $i { 
  $format_array[$i][0] = strtolower($result_array[$i]["cn"][0]); 
  $format_array[$i][1] = $result_array[$i]["dn"]; 
  $format_array[$i][2] = strtolower($result_array[$i]["givenname"][0]); 
  $format_array[$i][3] = strtolower($result_array[$i]["sn"][0]); 
  $format_array[$i][4] = strtolower($result_array[$i]["mail"][0]); 
  } 

  //排序数组 
  sort($format_array, "SORT_STRING"); 

  for($i=0; $i { 
  $cn = $format_array[$i][0]; 
  $dn = $format_array[$i][1]; 
  $fname = ucwords($format_array[$i][2]); 
  $lname = ucwords($format_array[$i][3]); 
  $email = $format_array[$i][4]; 

  if($dn && $fname && $lname && $email) 
  { 
  $result_list .= "$fname $lname"; 
  $result_list .= " <$email〉

本新闻共5页,当前在第2页  1  2  3  4  5  

收藏】【打印】【进入论坛
  相关文章:

·黑客攻击Discuz内幕:PHPWind逃一劫
·详解如何正确配置PHP开发环境
·php自定义获取来源ip的函数
·详解如何正确配置PHP开发环境
·PHP教程:如何才能自动获取关键词 
·PHP服务器变量设置方法
·PHP实现给上传图片加水印图案
·windows服务器PHP安装功略
·windows服务器PHP安装功略
·PHP面向对象分析设计的61条军规 
·PHP服务器变量设置方法介绍 

 
 
 
最新文章

抢先苹果,消息称英特尔芯片采用台积电
三星揭晓业内首款单条 512GB DDR5 内存
vivo 高端新机爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息称三星 Galaxy Tab S8 系列平板将放
机械革命推出 F6 轻薄本:16 英寸全面屏
英特尔 12 代 Alder Lake CPU 600 系列
雷军:向小米手机 1 首批用户每人赠送价
小米李明谈用户被踢出 MIUI 测试版:大

推荐文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感写真
宫如敏不雅照疯传 看张馨予韩一菲兽兽谁
不惧孔子抢位 阿凡达游戏影音配置推荐
2015第十七届“东北安博会”火爆招商
第十六届东北国际公共安全防范产品博览
2016年第五届中国国际商业信息化博览会
2016年第五届中国国际POS机及相关设备展
互联网电视熟了吗 2013最火电视深解析
桑达获邀出席2015中国(广州)国际POS机
宝获利报名参加“2015年度中国POS机行业
八卦图解 More>>
叛逆嫩模性感写真 宫如敏不雅照疯传 看张馨予韩一菲
周伟童魔鬼身材日本性感写真图  联想V360笔记本模特写真