Net_LDAP
[ class tree: Net_LDAP ] [ index: Net_LDAP ] [ all elements ]

Class: Net_LDAP_Util

Source Location: /Net_LDAP-1.0.0RC2/LDAP/Util.php

Class Overview

PEAR
   |
   --Net_LDAP_Util

Utility Class for Net_LDAP


Author(s):

Version:

  • $Revision: 1.18 $

Methods


Inherited Variables

Inherited Methods


Class Details

[line 39]
Utility Class for Net_LDAP

This class servers some functionality to the other classes of Net_LDAP but most of the methods can be used separately as well.

  • Author: Benedikt Hallinger <beni@php.net>
  • Version: $Revision: 1.18 $


[ Top ]


Method Detail

asc2hex32   [line 447]

string asc2hex32( string $string)

Converts all ASCII chars < 32 to "\HEX"

Parameters:

string   $string   —  String to convert

[ Top ]

canonical_dn   [line 280]

false|string canonical_dn( array|string $dn, [ $options = array('casefold' => 'upper')], array $option)

Returns the given DN in a canonical form

Returns false if DN is not a valid Distinguished Name. Note: The empty string "" is a valid DN. DN can either be a string or an array as returned by ldap_explode_dn, which is useful when constructing a DN. The DN array may have be indexed (each array value is a OCL=VALUE pair) or associative (array key is OCL and value is VALUE).

It performs the following operations on the given DN:

  • Removes the leading 'OID.' characters if the type is an OID instead of a name.
  • Escapes all RFC 2253 special characters (",", "+", """, "\", "<", ">", ";", "#", "=", " "), slashes ("/"), and any other character where the ASCII code is < 32 as \hexpair.
  • Converts all leading and trailing spaces in values to be \20.
  • If an RDN contains multiple parts, the parts are re-ordered so that the attribute type names are in alphabetical order.
OPTIONS is a list of name/value pairs, valid options are: casefold Controls case folding of attribute type names. Attribute values are not affected by this option. The default is to uppercase. Valid values are: lower Lowercase attribute type names. upper Uppercase attribute type names. This is the default. none Do not change attribute type names. [NOT IMPLEMENTED] mbcescape If TRUE, characters that are encoded as a multi-octet UTF-8 sequence will be escaped as \(hexpair){2,*}. reverse If TRUE, the RDN sequence is reversed. separator Separator to use between RDNs. Defaults to comma (',').

  • Return: The canonical DN
  • Todo: implement option mbcescape

Parameters:

array|string   $dn   —  The DN
array   $option   —  Options to use
   $options   — 

[ Top ]

escape_dn_value   [line 169]

array escape_dn_value( [array $values = array()])

Escapes a DN value according to RFC 2253

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.

  • Return: The array $values, but escaped

Parameters:

array   $values   —  A array containing the DN values that should be escaped

[ Top ]

escape_filter_value   [line 391]

array escape_filter_value( [array $values = array()])

Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters.

Any control characters with an ACII code < 32 as well as the characters with special meaning in LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a backslash followed by two hex digits representing the hexadecimal value of the character.

  • Return: Array $values, but escaped

Parameters:

array   $values   —  Array of values to escape

[ Top ]

hex2asc   [line 468]

string hex2asc( string $string)

Converts all Hex expressions ("\HEX") to their original asc characters
  • Author: beni@php.net, heavily based on work from DavidSmith@byu.net

Parameters:

string   $string   — 

[ Top ]

ldap_explode_dn   [line 93]

array ldap_explode_dn( string $dn, [array $options = array('casefold' => 'upper')])

Explodes the given DN into its elements

RFC 2253 says, a Distinguished Name is a sequence of Relative Distinguished Names (RDNs), which themselves are sets of Attributes. For each RDN a array is constructed where the RDN part is stored.

For example, the DN 'OU=Sales+CN=J. Smith,DC=example,DC=net' is exploded to: array( [0] => array([0] => 'OU=Sales', [1] => 'CN=J. Smith'), [2] => 'DC=example', [3] => 'DC=net' )

[NOT IMPLEMENTED] DNs might also contain values, which are the bytes of the BER encoding of the X.500 AttributeValue rather than some LDAP string syntax. These values are hex-encoded and prefixed with a #. To distinguish such BER values, ldap_explode_dn uses references to the actual values, e.g. '1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com' is exploded to: [ { '1.3.6.1.4.1.1466.0' => "\004\002Hi" }, { 'DC' => 'example' }, { 'DC' => 'com' } ]; See http://www.vijaymukhi.com/vmis/berldap.htm for more information on BER.

It also performs the following operations on the given DN:

  • Unescape "\" followed by ",", "+", """, "\", "<", ">", ";", "#", "=", " ", or a hexpair and strings beginning with "#".
  • Removes the leading 'OID.' characters if the type is an OID instead of a name.
OPTIONS is a list of name/value pairs, valid options are: casefold Controls case folding of attribute types names. Attribute values are not affected by this option. The default is to uppercase. Valid values are: lower Lowercase attribute types names. upper Uppercase attribute type names. This is the default. none Do not change attribute type names. reverse If TRUE, the RDN sequence is reversed. onlyvalues If TRUE, then only attributes values are returned ('foo' instead of 'cn=foo')

  • Return: Parts of the exploded DN
  • Author: beni@php.net
  • Todo: implement BER

Parameters:

string   $dn   —  The DN that should be exploded
array   $options   —  Options to use

[ Top ]

split_attribute_string   [line 519]

array split_attribute_string( string $attr)

Splits a attribute=value syntax into an array

The split will occur at the first unescaped '=' character.

  • Return: indexed array, 0=attribute name, 1=attribute value

Parameters:

string   $attr   —  Attribute and Value Syntax

[ Top ]

split_rdn_multival   [line 490]

array split_rdn_multival( string $rdn)

Split an multivalued RDN value into an Array

A RDN can contain multiple values, spearated by a plus sign. This function returns each separate ocl=value pair of the RDN part.

If no multivalued RDN is detected, a array containing only the original rdn part is returned.

For example, the multivalued RDN 'OU=Sales+CN=J. Smith' is exploded to: array([0] => 'OU=Sales', [1] => 'CN=J. Smith')

  • Return: Array with the components of the multivalued RDN

Parameters:

string   $rdn   —  Part of a (multivalued) RDN (ou=foo OR ou=foo+ou=bar)

[ Top ]

unescape_dn_value   [line 222]

array unescape_dn_value( [array $values = array()])

Undoes the conversion done by escape_dn_value().

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

Returns the converted list in list mode and the first element in scalar mode.

  • Return: Same as $values, but unescaped

Parameters:

array   $values   —  Array of DN Values

[ Top ]

unescape_filter_value   [line 425]

array unescape_filter_value( [array $values = array()])

Undoes the conversion done by escape_filter_value().

Converts any sequences of a backslash followed by two hex digits into the corresponding character.

  • Return: Array $values, but unescaped

Parameters:

array   $values   —  Array of values to escape

[ Top ]


Documentation generated on Mon, 11 Mar 2019 15:06:22 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.