阅读量:0
要在PHP中使用LDAP进行搜索,您可以使用ldap_search()
函数。以下是一个简单的示例,展示了如何使用LDAP搜索功能查找特定属性的用户。
首先,确保已安装并启用了PHP的LDAP扩展。
<?php // 设置LDAP服务器 $ldap_server = "ldap://your_ldap_server"; // 设置要连接的LDAP目录管理员 $ldap_user = "your_ldap_user"; $ldap_password = "your_ldap_password"; // 设置要搜索的基目录 $base_dn = "ou=users,dc=example,dc=com"; // 设置要搜索的属性 $attributes = array("sn", "cn"); // 构建LDAP搜索字符串 $search_filter = "(&(objectClass=inetOrgPerson))"; // 您可以根据需要修改搜索过滤器 // 连接到LDAP服务器 $conn = ldap_connect($ldap_server); if (!$conn) { die("Could not connect to LDAP server: " . ldap_error()); } // 绑定到LDAP服务器 if (!ldap_bind_s($conn, $ldap_user, $ldap_password)) { die("Could not bind to LDAP server: " . ldap_error()); } // 执行LDAP搜索 $search_result = ldap_search($conn, $base_dn, $search_filter, $attributes); // 检查搜索结果 if ($search_result) { // 获取搜索结果中的条目数 $entries = ldap_count_entries($conn, $search_result); echo "Found " . $entries . " entries:\n"; // 遍历搜索结果 for ($i = 0; $i < $entries; $i++) { $entry = ldap_get_entries($conn, $search_result, $i + 1); // 输出条目的属性 foreach ($attributes as $attr) { if (isset($entry[$attr][0])) { echo $attr . ": " . $entry[$attr][0] . "\n"; } } echo "\n"; } } else { echo "No entries found."; } // 关闭LDAP连接 ldap_unbind($conn); ?>
请注意,您需要将your_ldap_server
、your_ldap_user
、your_ldap_password
和ou=users,dc=example,dc=com
替换为您的实际LDAP服务器、用户、密码和基目录。您还可以根据需要修改搜索过滤器。
这个示例将连接到LDAP服务器,执行搜索,并输出找到的每个用户的sn
和cn
属性。您可以根据需要修改此代码以适应您的具体需求。