ldap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_deleteディレクトリからエントリを削除する

説明

ldap_delete(resource $ldap, string $dn, array|null $controls = null): bool

指定したエントリを LDAP ディレクトリから削除します。

パラメータ

ldap

ldap_connect() が返す LDAP リンク ID。

dn

LDAP エンティティの識別名。

controls

リクエストと一緒に送信する LDAP コントロール の配列

返り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 controls は、nullable になりました。 これより前のバージョンでは、デフォルト値が [] でした。
7.3 controls のサポートが追加されました。

参考

  • ldap_delete_ext() - ディレクトリからエントリを削除する
  • ldap_add() - LDAP ディレクトリにエントリを付加する

add a note add a note

User Contributed Notes 2 notes

up
2
grossman at post dot cz
6 years ago
Be aware! Operation not allowed on non-leaf.
up
0
gabriel at hrz dot uni-marburg dot de
21 years ago
Useful function to delete dn entries recursively

bool myldap_delete ( resource ds, string dn, bool recursive)

Returns TRUE on success, FALSE on failure
recursive is by default FALSE (same behaviour as ldap_delete)

function myldap_delete($ds,$dn,$recursive=false){
    if($recursive == false){
        return(ldap_delete($ds,$dn));
    }else{
        //searching for sub entries
        $sr=ldap_list($ds,$dn,"ObjectClass=*",array(""));
        $info = ldap_get_entries($ds, $sr);
        for($i=0;$i<$info['count'];$i++){
            //deleting recursively sub entries
            $result=myldap_delete($ds,$info[$i]['dn'],$recursive);
            if(!$result){
                //return result code, if delete fails
                return($result);
            }
        }
        return(ldap_delete($ds,$dn));
    }
}
To Top