Zend_Ldap_Dn provides an API for DN manipulation

category Zend
package Zend_Ldap
copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
license New BSD License

 Methods

Cast to string representation {@see toString()}

__toString() : string

Returns

string

Append a DN part

append(array $value) : \Zend_Ldap_Dn

Parameters

$value

array

Returns

\Zend_Ldap_DnProvides a fluent interface

checkDn()

checkDn(string $dn, array $keys = null, array $vals = null, string $caseFold = self::ATTR_CASEFOLD_NONE) : boolean
Static

Parameters

$dn

string

The DN to parse

$keys

array

An optional array to receive DN keys (e.g. CN, OU, DC, ...)

$vals

array

An optional array to receive DN values

$caseFold

string

Returns

booleanTrue if the DN was successfully parsed or false if the string is not a valid DN.

Escapes a DN value according to RFC 2253

escapeValue(string|array $values = array()) : array
Static

Escapes the given VALUES according to RFC 2253 so that they can be safely used in LDAP DNs. The characters ",", "+", """, "\", "<", ">", ";", "#", " = " with a special meaning in RFC 2252 are preceeded by ba backslash. Control characters with an ASCII code < 32 are represented as \hexpair. Finally all leading and trailing spaces are converted to sequences of \20.

see from Benedikt Hallinger
link http://pear.php.net/package/Net_LDAP2
author Benedikt Hallinger

Parameters

$values

stringarray

An array containing the DN values that should be escaped

Returns

arrayThe array $values, but escaped

Creates an array containing all parts of the given DN.

explodeDn(string $dn, array $keys = null, array $vals = null, string $caseFold = self::ATTR_CASEFOLD_NONE) : array
Static

Array will be of type array( array("cn" => "name1", "uid" => "user"), array("cn" => "name2"), array("dc" => "example"), array("dc" => "org") ) for a DN of cn=name1+uid=user,cn=name2,dc=example,dc=org.

Parameters

$dn

string

$keys

array

An optional array to receive DN keys (e.g. CN, OU, DC, ...)

$vals

array

An optional array to receive DN values

$caseFold

string

Exceptions

\Zend_Ldap_Exception

Returns

array

Creates a DN from an array or a string

factory(string|array $dn, string|null $caseFold = null) : \Zend_Ldap_Dn
Static

Parameters

$dn

stringarray

$caseFold

stringnull

Exceptions

\Zend_Ldap_Exception

Returns

\Zend_Ldap_Dn

Creates a DN from an array

fromArray(array $dn, string|null $caseFold = null) : \Zend_Ldap_Dn
Static

Parameters

$dn

array

$caseFold

stringnull

Exceptions

\Zend_Ldap_Exception

Returns

\Zend_Ldap_Dn

Creates a DN from a string

fromString(string $dn, string|null $caseFold = null) : \Zend_Ldap_Dn
Static

Parameters

$dn

string

$caseFold

stringnull

Exceptions

\Zend_Ldap_Exception

Returns

\Zend_Ldap_Dn

Get a DN part

get(integer $index, integer $length = 1, string $caseFold = null) : array

Parameters

$index

integer

$length

integer

$caseFold

string

Exceptions

\Zend_Ldap_Exception if index is illegal

Returns

array

Get the parent DN $levelUp levels up the tree

getParentDn(integer $levelUp = 1) : \Zend_Ldap_Dn

Parameters

$levelUp

integer

Returns

\Zend_Ldap_Dn

Gets the RDN of the current DN

getRdn(string $caseFold = null) : array

Parameters

$caseFold

string

Exceptions

\Zend_Ldap_Exception if DN has no RDN (empty array)

Returns

array

Gets the RDN of the current DN as a string

getRdnString(string $caseFold = null) : string

Parameters

$caseFold

string

Exceptions

\Zend_Ldap_Exception if DN has no RDN (empty array)

Returns

string

Implodes an array in the form delivered by {@link explodeDn()} to a DN string.

implodeDn(array $dnArray, string $caseFold = null, string $separator = ',') : string
Static

$dnArray must be of type array( array("cn" => "name1", "uid" => "user"), array("cn" => "name2"), array("dc" => "example"), array("dc" => "org") )

Parameters

$dnArray

array

$caseFold

string

$separator

string

Exceptions

\Zend_Ldap_Exception

Returns

string

Returns a DN part in the form $attribute = $value

implodeRdn(array $part, string $caseFold = null) : string
Static

This method supports the creation of multi-valued RDNs $part must contain an even number of elemets.

Parameters

$part

$caseFold

string

Exceptions

\Zend_Ldap_Exception

Returns

string

Insert a DN part

insert(integer $index, array $value) : \Zend_Ldap_Dn

Parameters

$index

integer

$value

array

Exceptions

\Zend_Ldap_Exception if index is illegal

Returns

\Zend_Ldap_DnProvides a fluent interface

Checks if given $childDn is beneath $parentDn subtree.

isChildOf(string|\Zend_Ldap_Dn $childDn, string|\Zend_Ldap_Dn $parentDn) : boolean
Static

Parameters

$childDn

string\Zend_Ldap_Dn

$parentDn

string\Zend_Ldap_Dn

Returns

boolean

Required by the ArrayAccess implementation

offsetExists(integer $offset) : boolean

Parameters

$offset

integer

Returns

boolean

Proxy to {@see get()} Required by the ArrayAccess implementation

offsetGet(integer $offset) : array

Parameters

$offset

integer

Returns

array

Proxy to {@see set()} Required by the ArrayAccess implementation

offsetSet(integer $offset, array $value) 

Parameters

$offset

integer

$value

array

Proxy to {@see remove()} Required by the ArrayAccess implementation

offsetUnset(integer $offset) 

Parameters

$offset

integer

Prepend a DN part

prepend(array $value) : \Zend_Ldap_Dn

Parameters

$value

array

Returns

\Zend_Ldap_DnProvides a fluent interface

Remove a DN part

remove(integer $index, integer $length = 1) : \Zend_Ldap_Dn

Parameters

$index

integer

$length

integer

Exceptions

\Zend_Ldap_Exception if index is illegal

Returns

\Zend_Ldap_DnProvides a fluent interface

Set a DN part

set(integer $index, array $value) : \Zend_Ldap_Dn

Parameters

$index

integer

$value

array

Exceptions

\Zend_Ldap_Exception if index is illegal

Returns

\Zend_Ldap_DnProvides a fluent interface

Sets the case fold

setCaseFold(string|null $caseFold) 

Parameters

$caseFold

stringnull

Sets the default case fold

setDefaultCaseFold(string $caseFold) 
Static

Parameters

$caseFold

string

Return DN as an array

toArray(string $caseFold = null) : array

Parameters

$caseFold

string

Returns

array

Return DN as a string

toString(string $caseFold = null) : string

Parameters

$caseFold

string

Exceptions

\Zend_Ldap_Exception

Returns

string

Undoes the conversion done by {@link escapeValue()}.

unescapeValue(string|array $values = array()) : array
Static

Any escape sequence starting with a baskslash - hexpair or special character - will be transformed back to the corresponding character.

see from Benedikt Hallinger
link http://pear.php.net/package/Net_LDAP2
author Benedikt Hallinger

Parameters

$values

stringarray

Array of DN Values

Returns

arraySame as $values, but unescaped

Constructor

__construct(array $dn, string|null $caseFold) 

Parameters

$dn

array

$caseFold

stringnull

Assert index is correct and usable

_assertIndex(mixed $index) : boolean

Parameters

$index

mixed

Exceptions

\Zend_Ldap_Exception

Returns

boolean

Assert if value is in a correct RDN format

_assertRdn(array $value) : boolean
Static

Parameters

$value

array

Exceptions

\Zend_Ldap_Exception

Returns

boolean

Do a case folding on a DN ort part of it

_caseFoldDn(array $dn, string $caseFold) : array
Static

Parameters

$dn

array

$caseFold

string

Returns

array

Do a case folding on a RDN

_caseFoldRdn(array $part, string $caseFold) : array
Static

Parameters

$part

array

$caseFold

string

Returns

array

Sanitizes the case fold

_sanitizeCaseFold(string $caseFold, $default) : string
Static

Parameters

$caseFold

string

$default

Returns

string

 Properties

 

The case fold used for this instance

$_caseFold : string

Default

 

The default case fold to use

$_defaultCaseFold : string

Default

self::ATTR_CASEFOLD_NONE
Static
 

The DN data

$_dn : array

Default

 Constants

 

ATTR_CASEFOLD_LOWER

ATTR_CASEFOLD_LOWER = 'lower' 
 

ATTR_CASEFOLD_NONE

ATTR_CASEFOLD_NONE = 'none' 
 

ATTR_CASEFOLD_UPPER

ATTR_CASEFOLD_UPPER = 'upper'