PHP 5.5 fix
This commit is contained in:
parent
80f74acbd0
commit
c77f9c75ec
|
@ -1065,7 +1065,7 @@ class myldap extends DS {
|
|||
# Record the forward and reverse entries in the cache.
|
||||
foreach ($result as $key => $value) {
|
||||
# translate hex code into ascii for display
|
||||
$result[$key] = $this->unescapeDN($value);
|
||||
$result[$key] = dn_unescape($value);
|
||||
|
||||
$CACHE['explode'][implode(',',$result[0])][$key] = $result[$key];
|
||||
$CACHE['explode'][implode(',',array_reverse($result[0]))][$key] = array_reverse($result[$key]);
|
||||
|
@ -1099,24 +1099,6 @@ class myldap extends DS {
|
|||
return $dn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a DN and unescape any special characters
|
||||
*/
|
||||
private function unescapeDN($dn) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if (is_array($dn)) {
|
||||
$a = array();
|
||||
foreach ($dn as $key => $rdn)
|
||||
$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
|
||||
|
||||
return $a;
|
||||
|
||||
} else
|
||||
return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
|
||||
}
|
||||
|
||||
public function getRootDSE($method=null) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
|
|
@ -2393,15 +2393,25 @@ function dn_unescape($dn) {
|
|||
$a = array();
|
||||
|
||||
foreach ($dn as $key => $rdn)
|
||||
$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
|
||||
$a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', 'convertHexStringToCharCallback', $rdn);
|
||||
|
||||
return $a;
|
||||
|
||||
} else {
|
||||
return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
|
||||
return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', 'convertHexStringToCharCallback', $dn);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a hex encoded string like \12 to the corresponding character.
|
||||
*
|
||||
* @param array $hex preg_replace_callback: matching hex string array
|
||||
* @return String character
|
||||
*/
|
||||
function convertHexStringToCharCallback($hex) {
|
||||
return chr(hexdec($hex[1]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches the URL for the specified item. This is a convenience function for
|
||||
* fetching project HREFs (like bugs)
|
||||
|
|
Loading…
Reference in New Issue