search.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 246 行

SVN-BASE
246
字号
<?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: Tarjej Huse                                                     |// +--------------------------------------------------------------------------+//// $Id$/** * Result set of an LDAP search * * @author  Tarjei Huse * @version $Revision$ * @package Net_LDAP */class Net_LDAP_Search extends PEAR{    /**     * Search result identifier     *     * @access private     * @var resource     */    var $_search;        /**     * LDAP resource link     *     * @access private     * @var resource     */    var $_link;    /**     * Array of entries     *     * @access private     * @var array     */    var $_entries = array();        /**     * Result entry identifier     *     * @access private     * @var resource     */    var $_elink = null;    /**     * The errorcode the search got     *      * Some errorcodes might be of interest, but might not be best handled as errors.      * examples: 4 - LDAP_SIZELIMIT_EXCEEDED - indecates a huge search.     *               Incomplete results are returned. If you just want to check if there's anything in the search.     *               than this is a point to handle.     *           32 - no such object - search here returns a count of 0.     *               * @access private     * @var int     */    var $_errorCode = 0; // if not set - sucess!       /**     * Constructor    *    * @access protected    * @param resource Search result identifier    * @param resource Link identifier    */    function Net_LDAP_Search (&$search, &$link)    {            $this->_setSearch($search, $link);        $this->_errorCode = ldap_errno($link);    }    /**     * Returns an assosiative array of entry objects     *     * @return array Array of entry objects.     */    function entries()    {        if ($this->count() == 0) {            return array();        }                $this->_elink = @ldap_first_entry( $this->_link,$this->_search);        $entry = new Net_LDAP_Entry($this->_link,                                        @ldap_get_dn($this->_link, $this->_elink),                                    @ldap_get_attributes($this->_link, $this->_elink));        array_push($this->_entries, $entry);        while ($this->_elink = @ldap_next_entry($this->_link,$this->_elink)) {            $entry = new Net_LDAP_Entry($this->_link,                                        @ldap_get_dn($this->_link, $this->_elink),                                        @ldap_get_attributes($this->_link, $this->_elink));            array_push($this->_entries, $entry);        }        return $this->_entries;    }       /**     * Get the next entry in the searchresult.     *     * @return mixed Net_LDAP_Entry object or false     */    function shiftEntry()    {        if ($this->count() == 0 ) {            return false;        }        if (is_null($this->_elink)) {            $this->_elink = @ldap_first_entry($this->_link, $this->_search);            $entry = new Net_LDAP_Entry($this->_link,        	                            ldap_get_dn($this->_link, $this->_elink),                	                    ldap_get_attributes($this->_link, $this->_elink));        } else {            if (!$this->_elink = ldap_next_entry($this->_link, $this->_elink)) {                return false;            }    	    $entry = new Net_LDAP_Entry($this->_link,    		                            ldap_get_dn($this->_link,$this->_elink),            	                        ldap_get_attributes($this->_link,$this->_elink));        }        return $entry;    }        /**     * alias function of shiftEntry() for perl-ldap interface     *      * @see shiftEntry()     */    function shift_entry()     {        $args = func_get_args();        return call_user_func_array(array($this, 'shiftEntry'), $args);    }       /**     * Retrieve the last entry of the searchset. NOT IMPLEMENTED     *     * @return object Net_LDAP_Error     */    function pop_entry ()     {        $this->raiseError("Not implemented");    }        /**     * Return entries sorted NOT IMPLEMENTED     *     * @param array Array of sort attributes     * @return object Net_LDAP_Error     */    function sorted ($attrs = array())     {        $this->raiseError("Not impelented");    }       /**     * Return entries as object NOT IMPLEMENTED    *    * @return object Net_LDAP_Error    */    function as_struct ()    {        $this->raiseError("Not implemented");    }   /**    * Set the searchobjects resourcelinks    *    * @access private    * @param resource Search result identifier    * @param resource Resource link identifier    */    function _setSearch(&$search,&$link)    {              $this->_search = $search;        $this->_link   = $link;    }      /**    * Returns the number of entries in the searchresult    *    * @return int Number of entries in search.    */    function count()    {        /* this catches the situation where OL returned errno 32 = no such object! */        if (!$this->_search) {            return 0;        }        return @ldap_count_entries($this->_link, $this->_search);    }    /**     * Get the errorcode the object got in its search.     *     * @return int The ldap error number.     */    function getErrorCode()    {        return $this->_errorCode;    }       /** Destructor     *    * @access protected    */    function _Net_LDAP_Search()     {        @ldap_free_result($this->_search);    }       /**     * Closes search result    */    function done()    {        $this->_Net_LDAP_Search();    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?