輸入待尋字串
  <?php
  require("http://php.wilson.gs");  // 回首頁
  echo "http://php.wilson.gs/bible/group.php : LDAP 目錄協定函式庫";


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 連結。


[ 上一頁 /bible/group.php 下一頁 ]



本站置於 NEC BIGLOBE 地球村網際網路  echo "Copyright © 1999-2000, Wilson Peng";
  mail("wilson@biglobe.net.tw", "Feedback", $message);
  ?>