⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 channelfile.php

📁 php-4.4.7学习linux时下载的源代码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
        } else {            return false;        }    }    /**     * @return int|80 port number to connect to     */    function getPort($mirror = false)    {        if ($mirror) {            if ($mir = $this->getMirror($mirror)) {                if (isset($mir['attribs']['port'])) {                    return $mir['attribs']['port'];                } else {                    if ($this->getSSL($mirror)) {                        return 443;                    }                    return 80;                }            }            return false;        }        if (isset($this->_channelInfo['servers']['primary']['attribs']['port'])) {            return $this->_channelInfo['servers']['primary']['attribs']['port'];        }        if ($this->getSSL()) {            return 443;        }        return 80;    }    /**     * @return bool Determines whether secure sockets layer (SSL) is used to connect to this channel     */    function getSSL($mirror = false)    {        if ($mirror) {            if ($mir = $this->getMirror($mirror)) {                if (isset($mir['attribs']['ssl'])) {                    return true;                } else {                    return false;                }            }            return false;        }        if (isset($this->_channelInfo['servers']['primary']['attribs']['ssl'])) {            return true;        }        return false;    }    /**     * @return string|false     */    function getSummary()    {        if (isset($this->_channelInfo['summary'])) {            return $this->_channelInfo['summary'];        } else {            return false;        }    }    /**     * @param string xmlrpc or soap     * @param string|false mirror name or false for primary server     */    function getPath($protocol, $mirror = false)    {           if (!in_array($protocol, array('xmlrpc', 'soap'))) {            return false;        }        if ($mirror) {            if (!($mir = $this->getMirror($mirror))) {                return false;            }            if (isset($mir[$protocol]['attribs']['path'])) {                return $mir[$protocol]['attribs']['path'];            } else {                return $protocol . '.php';            }        } elseif (isset($this->_channelInfo['servers']['primary'][$protocol]['attribs']['path'])) {            return $this->_channelInfo['servers']['primary'][$protocol]['attribs']['path'];        }        return $protocol . '.php';    }    /**     * @param string protocol type (xmlrpc, soap)     * @param string Mirror name     * @return array|false     */    function getFunctions($protocol, $mirror = false)    {        if ($this->getName() == '__uri') {            return false;        }        if ($protocol == 'rest') {            $function = 'baseurl';        } else {            $function = 'function';        }        if ($mirror) {            if ($mir = $this->getMirror($mirror)) {                if (isset($mir[$protocol][$function])) {                    return $mir[$protocol][$function];                }            }            return false;        }        if (isset($this->_channelInfo['servers']['primary'][$protocol][$function])) {            return $this->_channelInfo['servers']['primary'][$protocol][$function];        } else {            return false;        }    }    /**     * @param string Protocol type     * @param string Function name (null to return the     *               first protocol of the type requested)     * @param string Mirror name, if any     * @return array     */     function getFunction($type, $name = null, $mirror = false)     {        $protocols = $this->getFunctions($type, $mirror);        if (!$protocols) {            return false;        }        foreach ($protocols as $protocol) {            if ($name === null) {                return $protocol;            }            if ($protocol['_content'] != $name) {                continue;            }            return $protocol;        }        return false;     }    /**     * @param string protocol type     * @param string protocol name     * @param string version     * @param string mirror name     * @return boolean     */    function supports($type, $name = null, $mirror = false, $version = '1.0')    {        $protocols = $this->getFunctions($type, $mirror);        if (!$protocols) {            return false;        }        foreach ($protocols as $protocol) {            if ($protocol['attribs']['version'] != $version) {                continue;            }            if ($name === null) {                return true;            }            if ($protocol['_content'] != $name) {                continue;            }            return true;        }        return false;    }    /**     * Determines whether a channel supports Representational State Transfer (REST) protocols     * for retrieving channel information     * @param string     * @return bool     */    function supportsREST($mirror = false)    {        if ($mirror == $this->_channelInfo['name']) {            $mirror = false;        }        if ($mirror) {            if ($mir = $this->getMirror($mirror)) {                return isset($mir['rest']);            }            return false;        }        return isset($this->_channelInfo['servers']['primary']['rest']);    }    /**     * Get the URL to access a base resource.     *     * Hyperlinks in the returned xml will be used to retrieve the proper information     * needed.  This allows extreme extensibility and flexibility in implementation     * @param string Resource Type to retrieve     */    function getBaseURL($resourceType, $mirror = false)    {        if ($mirror == $this->_channelInfo['name']) {            $mirror = false;        }        if ($mirror) {            if ($mir = $this->getMirror($mirror)) {                $rest = $mir['rest'];            } else {                return false;            }            $server = $mirror;        } else {            $rest = $this->_channelInfo['servers']['primary']['rest'];            $server = $this->getServer();        }        if (!isset($rest['baseurl'][0])) {            $rest['baseurl'] = array($rest['baseurl']);        }        foreach ($rest['baseurl'] as $baseurl) {            if (strtolower($baseurl['attribs']['type']) == strtolower($resourceType)) {                return $baseurl['_content'];            }        }        return false;    }    /**     * Since REST does not implement RPC, provide this as a logical wrapper around     * resetFunctions for REST     * @param string|false mirror name, if any     */    function resetREST($mirror = false)    {        return $this->resetFunctions('rest', $mirror);    }    /**     * Empty all protocol definitions     * @param string protocol type (xmlrpc, soap)     * @param string|false mirror name, if any     */    function resetFunctions($type, $mirror = false)    {        if ($mirror) {            if (isset($this->_channelInfo['servers']['mirror'])) {                $mirrors = $this->_channelInfo['servers']['mirror'];                if (!isset($mirrors[0])) {                    $mirrors = array($mirrors);                }                foreach ($mirrors as $i => $mir) {                    if ($mir['attribs']['host'] == $mirror) {                        if (isset($this->_channelInfo['servers']['mirror'][$i][$type])) {                            unset($this->_channelInfo['servers']['mirror'][$i][$type]);                        }                        return true;                    }                }                return false;            } else {                return false;            }        } else {            if (isset($this->_channelInfo['servers']['primary'][$type])) {                unset($this->_channelInfo['servers']['primary'][$type]);            }            return true;        }    }    /**     * Set a channel's protocols to the protocols supported by pearweb     */    function setDefaultPEARProtocols($version = '1.0', $mirror = false)    {        switch ($version) {            case '1.0' :                $this->resetFunctions('xmlrpc', $mirror);                $this->resetFunctions('soap', $mirror);                $this->resetREST($mirror);                $this->addFunction('xmlrpc', '1.0', 'logintest', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.listLatestReleases', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.listAll', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.info', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.getDownloadURL', $mirror);                $this->addFunction('xmlrpc', '1.1', 'package.getDownloadURL', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.getDepDownloadURL', $mirror);                $this->addFunction('xmlrpc', '1.1', 'package.getDepDownloadURL', $mirror);                $this->addFunction('xmlrpc', '1.0', 'package.search', $mirror);                $this->addFunction('xmlrpc', '1.0', 'channel.listAll', $mirror);                return true;            break;            default :                return false;            break;        }    }        /**     * @return array     */    function getMirrors()    {        if (isset($this->_channelInfo['servers']['mirror'])) {            $mirrors = $this->_channelInfo['servers']['mirror'];            if (!isset($mirrors[0])) {                $mirrors = array($mirrors);            }            return $mirrors;        } else {            return array();        }    }    /**     * Get the unserialized XML representing a mirror     * @return array|false     */    function getMirror($server)    {        foreach ($this->getMirrors() as $mirror) {            if ($mirror['attribs']['host'] == $server) {                return $mirror;            }        }        return false;    }    /**     * @param string     * @return string|false     * @error PEAR_CHANNELFILE_ERROR_NO_NAME     * @error PEAR_CHANNELFILE_ERROR_INVALID_NAME     */    function setName($name)    {        return $this->setServer($name);    }    /**     * Set the socket number (port) that is used to connect to this channel     * @param integer     * @param string|false name of the mirror server, or false for the primary     */    function setPort($port, $mirror = false)    {        if ($mirror) {            if (!isset($this->_channelInfo['servers']['mirror'])) {                $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND,                    array('mirror' => $mirror));                return false;            }            $setmirror = false;            if (isset($this->_channelInfo['servers']['mirror'][0])) {                foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) {                    if ($mirror == $mir['attribs']['host']) {                        $this->_channelInfo['servers']['mirror'][$i]['attribs']['port'] = $port;                        return true;                    }                }                return false;            } elseif ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) {                $this->_channelInfo['servers']['mirror']['attribs']['port'] = $port;                $this->_isValid = false;                return true;            }        }        $this->_channelInfo['servers']['primary']['attribs']['port'] = $port;        $this->_isValid = false;        return true;    }    /**     * Set the socket number (port) that is used to connect to this channel     * @param bool Determines whether to turn on SSL support or turn it off     * @param string|false name of the mirror server, or false for the primary     */    function setSSL($ssl = true, $mirror = false)    {        if ($mirror) {            if (!isset($this->_channelInfo['servers']['mirror'])) {                $this->_validateError(PEAR_CHANNELFILE_ERROR_MIRROR_NOT_FOUND,                    array('mirror' => $mirror));                return false;            }            $setmirror = false;            if (isset($this->_channelInfo['servers']['mirror'][0])) {                foreach ($this->_channelInfo['servers']['mirror'] as $i => $mir) {                    if ($mirror == $mir['attribs']['host']) {                        if (!$ssl) {                            if (isset($this->_channelInfo['servers']['mirror'][$i]                                  ['attribs']['ssl'])) {                                unset($this->_channelInfo['servers']['mirror'][$i]['attribs']['ssl']);                            }                        } else {                            $this->_channelInfo['servers']['mirror'][$i]['attribs']['ssl'] = 'yes';                        }                        return true;                    }                }                return false;            } elseif ($this->_channelInfo['servers']['mirror']['attribs']['host'] == $mirror) {                if (!$ssl) {                    if (isset($this->_channelInfo['servers']['mirror']['attribs']['ssl'])) {                        unset($this->_channelInfo['servers']['mirror']['attribs']['ssl']);

⌨️ 快捷键说明

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