ldap_delete

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

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

説明

ldap_delete(LDAP\Connection $ldap, string $dn, ?array $controls = null): bool

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

パラメータ

ldap

ldap_connect() が返す LDAP\Connection クラスのインスタンス。

dn

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

controls

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

戻り値

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

変更履歴

バージョン 説明
8.1.0 引数 ldap は、LDAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。
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
1
grossman at post dot cz
3 years ago
Be aware! Operation not allowed on non-leaf.
up
0
gabriel at hrz dot uni-marburg dot de
19 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