溫馨提示×

ldap php 如何進行搜索

PHP
小樊
81
2024-09-24 12:38:06
欄目: 編程語言

要在PHP中使用LDAP進行搜索,您可以使用ldap_search()函數(shù)。以下是一個簡單的示例,展示了如何使用LDAP搜索功能查找特定屬性的用戶。

首先,確保已安裝并啟用了PHP的LDAP擴展。

<?php
// 設(shè)置LDAP服務(wù)器
$ldap_server = "ldap://your_ldap_server";

// 設(shè)置要連接的LDAP目錄管理員
$ldap_user = "your_ldap_user";
$ldap_password = "your_ldap_password";

// 設(shè)置要搜索的基目錄
$base_dn = "ou=users,dc=example,dc=com";

// 設(shè)置要搜索的屬性
$attributes = array("sn", "cn");

// 構(gòu)建LDAP搜索字符串
$search_filter = "(&(objectClass=inetOrgPerson))"; // 您可以根據(jù)需要修改搜索過濾器

// 連接到LDAP服務(wù)器
$conn = ldap_connect($ldap_server);
if (!$conn) {
    die("Could not connect to LDAP server: " . ldap_error());
}

// 綁定到LDAP服務(wù)器
if (!ldap_bind_s($conn, $ldap_user, $ldap_password)) {
    die("Could not bind to LDAP server: " . ldap_error());
}

// 執(zhí)行LDAP搜索
$search_result = ldap_search($conn, $base_dn, $search_filter, $attributes);

// 檢查搜索結(jié)果
if ($search_result) {
    // 獲取搜索結(jié)果中的條目數(shù)
    $entries = ldap_count_entries($conn, $search_result);
    echo "Found " . $entries . " entries:\n";

    // 遍歷搜索結(jié)果
    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.";
}

// 關(guān)閉LDAP連接
ldap_unbind($conn);
?>

請注意,您需要將your_ldap_serveryour_ldap_user、your_ldap_passwordou=users,dc=example,dc=com替換為您的實際LDAP服務(wù)器、用戶、密碼和基目錄。您還可以根據(jù)需要修改搜索過濾器。

這個示例將連接到LDAP服務(wù)器,執(zhí)行搜索,并輸出找到的每個用戶的sncn屬性。您可以根據(jù)需要修改此代碼以適應(yīng)您的具體需求。

0