本文整理汇总了PHP中Zend_Ldap_Converter::ascToHex32方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Ldap_Converter::ascToHex32方法的具体用法?PHP Zend_Ldap_Converter::ascToHex32怎么用?PHP Zend_Ldap_Converter::ascToHex32使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Ldap_Converter
的用法示例。
在下文中一共展示了Zend_Ldap_Converter::ascToHex32方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testAsc2hex32
public function testAsc2hex32()
{
$expected = '\\00\\01\\02\\03\\04\\05\\06\\07\\08\\09\\0a\\0b\\0c\\0d\\0e\\0f\\10\\11\\12\\13\\14\\15\\16\\17\\18\\19' . '\\1a\\1b\\1c\\1d\\1e\\1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`' . 'abcdefghijklmnopqrstuvwxyz{|}~';
$str = '';
for ($i = 0; $i < 127; $i++) {
$str .= chr($i);
}
$this->assertEquals($expected, Zend_Ldap_Converter::ascToHex32($str));
}
示例2: escapeValue
/**
* 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.
* @see Net_LDAP2_Util::escape_dn_value() from Benedikt Hallinger <beni@php.net>
* @link http://pear.php.net/package/Net_LDAP2
* @author Benedikt Hallinger <beni@php.net>
*
* @param string|array $values An array containing the DN values that should be escaped
* @return array The array $values, but escaped
*/
public static function escapeValue($values = array())
{
/**
* @see Zend_Ldap_Converter
*/
require_once 'Zend/Ldap/Converter.php';
if (!is_array($values)) {
$values = array($values);
}
foreach ($values as $key => $val) {
// Escaping of filter meta characters
$val = str_replace(array('\\', ',', '+', '"', '<', '>', ';', '#', '='), array('\\\\', '\\,', '\\+', '\\"', '\\<', '\\>', '\\;', '\\#', '\\='), $val);
$val = Zend_Ldap_Converter::ascToHex32($val);
// Convert all leading and trailing spaces to sequences of \20.
if (preg_match('/^(\\s*)(.+?)(\\s*)$/', $val, $matches)) {
$val = $matches[2];
for ($i = 0; $i < strlen($matches[1]); $i++) {
$val = '\\20' . $val;
}
for ($i = 0; $i < strlen($matches[3]); $i++) {
$val = $val . '\\20';
}
}
if (null === $val) {
$val = '\\0';
}
// apply escaped "null" if string is empty
$values[$key] = $val;
}
return count($values) == 1 ? $values[0] : $values;
}
示例3: escapeValue
/**
* 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.
* @see Net_LDAP2_Util::escape_filter_value() from Benedikt Hallinger <beni@php.net>
* @link http://pear.php.net/package/Net_LDAP2
* @author Benedikt Hallinger <beni@php.net>
*
* @param string|array $values Array of values to escape
* @return array Array $values, but escaped
*/
public static function escapeValue($values = array())
{
/**
* @see Zend_Ldap_Converter
*/
require_once 'Zend/Ldap/Converter.php';
if (!is_array($values)) {
$values = array($values);
}
foreach ($values as $key => $val) {
// Escaping of filter meta characters
$val = str_replace(array('\\', '*', '(', ')'), array('\\5c', '\\2a', '\\28', '\\29'), $val);
// ASCII < 32 escaping
$val = Zend_Ldap_Converter::ascToHex32($val);
if (null === $val) {
$val = '\\0';
}
// apply escaped "null" if string is empty
$values[$key] = $val;
}
return count($values) == 1 ? $values[0] : $values;
}