PHP完全中文操作手冊

天地JPLOP | PHP首頁 | 函數索引
LDAP 目錄協議函數庫
本函數庫共有 25 個函數

LDAP (Lightweight Directory Access Protocol) 是一種輕量的目錄存取協議,提供客戶從各個角落連接到目錄服務器中。在 RFC 1777 及 RFC 1778 中對 LDAP 有較深入的描述,亦可參考 Netscape 站上有關 LDAP 方面的資料。

在 LDAP 的協議之中,很像硬盤目錄結構或倒過來的樹狀結構。LDAP 的根就是全世界,第一級是屬於國別 (countries) 性質的層級,之後可能會有公司 (organization) 的層級,接著是部門 (organizationalUnit),再來為個人。而就像文件,每個人都會有所謂的顯名 (distinguished name, 簡稱 dn),dn 可能像醬子 cn=John Smith,ou=Accounts,o=My Company,c=US。

<?php
// 本例使用到 connect, bind, search, interpret search
// result, close connection 等等 LDAP 的功能。
echo "<h3>LDAP 搜尋測試</h3>";
echo
"連接中 ...";
$ds=ldap_connect("localhost"); // 先連上有效的 LDAP 服務器
echo "連上 ".$ds."<p>";

if (
$ds) {
echo
"Binding ...";
$r=ldap_bind($ds); // 匿名的 bind,為隻讀屬性
echo "Bind 返回 ".$r."<p>";
echo
"Searching for (sn=S*) ..."; // 找尋 S 開頭的姓氏
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo
"Search 返回 ".$sr."<p>";
echo
"S 開頭的姓氏有 ".ldap_count_entries($ds,$sr)." 個<p>";
echo
"取回姓氏資料 ...<p>";
$info = ldap_get_entries($ds, $sr);
echo
"資料返回 ".$info["count"]." 筆:<p>";
for (
$i=0; $i<$info["count"]; $i++) {
echo
"dn 為: ". $info[$i]["dn"] ."<br>";
echo
"cn 為: ". $info[$i]["cn"][0] ."<br>";
echo
"email 為: ". $info[$i]["mail"][0] ."<p>";
}
echo
"關閉鏈接";
ldap_close($ds);
} else {
echo
"<h4>無法連接到 LDAP 服務器</h4>";
}
?>

欲使用 LDAP 服務器功能要先在 Web 服務器安裝 LDAP 客戶端程序,較著名的有美國密西根大學的 ldap-3.3 套件或者是 Netscape 的 Directory SDK。可到下列網址找回來安裝

ldap_add:增加 LDAP 名錄的條目。
ldap_mod_add:增加 LDAP 名錄的屬性。
ldap_mod_del:刪除 LDAP 名錄的屬性。
ldap_mod_replace:新的 LDAP 名錄取代舊屬性。
ldap_bind:繫住 LDAP 目錄。
ldap_close:結束 LDAP 鏈接。
ldap_connect:連上 LDAP 服務器。
ldap_count_entries:搜尋結果的數目。
ldap_delete:刪除指定資源。
ldap_dn2ufn:將 dn 轉成易讀的名字。
ldap_explode_dn:切開 dn 的字段。
ldap_first_attribute:取得第一筆資源的屬性。
ldap_first_entry:取得第一筆結果代號。
ldap_free_result:釋放返回資料內存。
ldap_get_attributes:取得返回資料的屬性。
ldap_get_dn:取得 DN 值。
ldap_get_entries:取得全部返回資料。
ldap_get_values:取得全部返回值。
ldap_list:列出簡表。
ldap_modify:改變 LDAP 名錄的屬性。
ldap_next_attribute:取得返回資料的下筆屬性。
ldap_next_entry:取得下一筆結果代號。
ldap_read:取得目前的資料屬性。
ldap_search:列出樹狀簡表。
ldap_unbind:結束 LDAP 鏈接。



整理: 夕垌菪姬 (天地JPLOP)

[ 上一頁 回主目錄 下一頁 ]
版權所有,天地JPLOP、爵堤亞(夕垌菪姬)。網頁背景音樂和各鍊結標題
及鍊結內容和文章小說,版面編排皆歸原權利人所有對本版面
有任何意見或指教,歡迎至論壇指教。