util.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 133 行
SVN-BASE
133 行
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +--------------------------------------------------------------------------+// | Net_LDAP |// +--------------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group |// +--------------------------------------------------------------------------+// | This library is free software; you can redistribute it and/or |// | modify it under the terms of the GNU Lesser General Public |// | License as published by the Free Software Foundation; either |// | version 2.1 of the License, or (at your option) any later version. |// | |// | This library is distributed in the hope that it will be useful, |// | but WITHOUT ANY WARRANTY; without even the implied warranty of |// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |// | Lesser General Public License for more details. |// | |// | You should have received a copy of the GNU Lesser General Public |// | License along with this library; if not, write to the Free Software |// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |// +--------------------------------------------------------------------------+// | Authors: Jan Wagner |// +--------------------------------------------------------------------------+//// $Id$ /** * Utility Class for Net_LDAP * * @package Net_LDAP * @author Jan Wagner <wagner@netsols.de> * @version $Revision$ */class Net_LDAP_Util extends PEAR { /** * Reference to LDAP object * * @access private * @var object Net_LDAP */ var $_ldap = null; /** * Net_LDAP_Schema object * * @access private * @var object Net_LDAP_Schema */ var $_schema = null; /** * Constructur * * Takes an LDAP object by reference and saves it. Then the schema will be fetched. * * @access public * @param object Net_LDAP */ function Net_LDAP_Util(&$ldap) { if (is_object($ldap) && (strtolower(get_class($ldap)) == 'net_ldap')) { $this->_ldap = $ldap; $this->_schema = $this->_ldap->schema(); if (Net_LDAP::isError($this->_schema)) $this->_schema = null; } } /** * Encodes given attributes to UTF8 if needed * * This function takes attributes in an array and then checks against the schema if they need * UTF8 encoding. If that is so, they will be encoded. An encoded array will be returned and * can be used for adding or modifying. * * @access public * @param array Array of attributes * @return array Array of UTF8 encoded attributes */ function utf8Encode($attributes) { return $this->_utf8($attributes, 'utf8_encode'); } /** * Decodes the given attribute values * * @access public * @param array Array of attributes * @return array Array with decoded attribute values */ function utf8Decode($attributes) { return $this->_utf8($attributes, 'utf8_decode'); } /** * Encodes or decodes attribute values if needed * * @access private * @param array Array of attributes * @param array Function to apply to attribute values * @return array Array of attributes with function applied to values */ function _utf8($attributes, $function) { if (!$this->_ldap || !$this->_schema || !function_exists($function)) { return $attributes; } if (is_array($attributes) && count($attributes) > 0) { foreach( $attributes as $k => $v ) { $attr = $this->_schema->get('attribute', $k); if (Net_LDAP::isError($attr)) { continue; } if (false !== strpos($attr['syntax'], '1.3.6.1.4.1.1466.115.121.1.15')) { if (is_array($v)) { foreach ($v as $ak => $av ) { $v[$ak] = call_user_func($function, $av ); } } else { $v = call_user_func($function, $v); } } $attributes[$k] = $v; } } return $attributes; } }?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?