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

📄 server.php

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: *//** * Server commands for our PHP implementation of the XML-RPC protocol * * This is a PEAR-ified version of Useful inc's XML-RPC for PHP. * It has support for HTTP transport, proxies and authentication. * * PHP versions 4 and 5 * * LICENSE: License is granted to use or modify this software * ("XML-RPC for PHP") for commercial or non-commercial use provided the * copyright of the author is preserved in any distributed or derivative work. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESSED OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * @category   Web Services * @package    XML_RPC * @author     Edd Dumbill <edd@usefulinc.com> * @author     Stig Bakken <stig@php.net> * @author     Martin Jansen <mj@php.net> * @author     Daniel Convissor <danielc@php.net> * @copyright  1999-2001 Edd Dumbill, 2001-2005 The PHP Group * @version    CVS: $Id: Server.php,v 1.30 2005/09/07 04:06:20 danielc Exp $ * @link       http://pear.php.net/package/XML_RPC *//** * Pull in the XML_RPC class */require_once 'XML/RPC.php';/** * signature for system.listMethods: return = array, * parameters = a string or nothing * @global array $GLOBALS['XML_RPC_Server_listMethods_sig'] */$GLOBALS['XML_RPC_Server_listMethods_sig'] = array(    array($GLOBALS['XML_RPC_Array'],          $GLOBALS['XML_RPC_String']    ),    array($GLOBALS['XML_RPC_Array']));/** * docstring for system.listMethods * @global string $GLOBALS['XML_RPC_Server_listMethods_doc'] */$GLOBALS['XML_RPC_Server_listMethods_doc'] = 'This method lists all the'        . ' methods that the XML-RPC server knows how to dispatch';/** * signature for system.methodSignature: return = array, * parameters = string * @global array $GLOBALS['XML_RPC_Server_methodSignature_sig'] */$GLOBALS['XML_RPC_Server_methodSignature_sig'] = array(    array($GLOBALS['XML_RPC_Array'],          $GLOBALS['XML_RPC_String']    ));/** * docstring for system.methodSignature * @global string $GLOBALS['XML_RPC_Server_methodSignature_doc'] */$GLOBALS['XML_RPC_Server_methodSignature_doc'] = 'Returns an array of known'        . ' signatures (an array of arrays) for the method name passed. If'        . ' no signatures are known, returns a none-array (test for type !='        . ' array to detect missing signature)';/** * signature for system.methodHelp: return = string, * parameters = string * @global array $GLOBALS['XML_RPC_Server_methodHelp_sig'] */$GLOBALS['XML_RPC_Server_methodHelp_sig'] = array(    array($GLOBALS['XML_RPC_String'],          $GLOBALS['XML_RPC_String']    ));/** * docstring for methodHelp * @global string $GLOBALS['XML_RPC_Server_methodHelp_doc'] */$GLOBALS['XML_RPC_Server_methodHelp_doc'] = 'Returns help text if defined'        . ' for the method passed, otherwise returns an empty string';/** * dispatch map for the automatically declared XML-RPC methods. * @global array $GLOBALS['XML_RPC_Server_dmap'] */$GLOBALS['XML_RPC_Server_dmap'] = array(    'system.listMethods' => array(        'function'  => 'XML_RPC_Server_listMethods',        'signature' => $GLOBALS['XML_RPC_Server_listMethods_sig'],        'docstring' => $GLOBALS['XML_RPC_Server_listMethods_doc']    ),    'system.methodHelp' => array(        'function'  => 'XML_RPC_Server_methodHelp',        'signature' => $GLOBALS['XML_RPC_Server_methodHelp_sig'],        'docstring' => $GLOBALS['XML_RPC_Server_methodHelp_doc']    ),    'system.methodSignature' => array(        'function'  => 'XML_RPC_Server_methodSignature',        'signature' => $GLOBALS['XML_RPC_Server_methodSignature_sig'],        'docstring' => $GLOBALS['XML_RPC_Server_methodSignature_doc']    ));/** * @global string $GLOBALS['XML_RPC_Server_debuginfo'] */$GLOBALS['XML_RPC_Server_debuginfo'] = '';/** * Lists all the methods that the XML-RPC server knows how to dispatch * * @return object  a new XML_RPC_Response object */function XML_RPC_Server_listMethods($server, $m){    global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap;    $v = new XML_RPC_Value();    $outAr = array();    foreach ($server->dmap as $key => $val) {        $outAr[] = new XML_RPC_Value($key, 'string');    }    foreach ($XML_RPC_Server_dmap as $key => $val) {        $outAr[] = new XML_RPC_Value($key, 'string');    }    $v->addArray($outAr);    return new XML_RPC_Response($v);}/** * Returns an array of known signatures (an array of arrays) * for the given method * * If no signatures are known, returns a none-array * (test for type != array to detect missing signature) * * @return object  a new XML_RPC_Response object */function XML_RPC_Server_methodSignature($server, $m){    global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap;    $methName = $m->getParam(0);    $methName = $methName->scalarval();    if (strpos($methName, 'system.') === 0) {        $dmap = $XML_RPC_Server_dmap;        $sysCall = 1;    } else {        $dmap = $server->dmap;        $sysCall = 0;    }    //  print "<!-- ${methName} -->\n";    if (isset($dmap[$methName])) {        if ($dmap[$methName]['signature']) {            $sigs = array();            $thesigs = $dmap[$methName]['signature'];            for ($i = 0; $i < sizeof($thesigs); $i++) {                $cursig = array();                $inSig = $thesigs[$i];                for ($j = 0; $j < sizeof($inSig); $j++) {                    $cursig[] = new XML_RPC_Value($inSig[$j], 'string');                }                $sigs[] = new XML_RPC_Value($cursig, 'array');            }            $r = new XML_RPC_Response(new XML_RPC_Value($sigs, 'array'));        } else {            $r = new XML_RPC_Response(new XML_RPC_Value('undef', 'string'));        }    } else {        $r = new XML_RPC_Response(0, $XML_RPC_err['introspect_unknown'],                                  $XML_RPC_str['introspect_unknown']);    }    return $r;}/** * Returns help text if defined for the method passed, otherwise returns * an empty string * * @return object  a new XML_RPC_Response object */function XML_RPC_Server_methodHelp($server, $m){    global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap;    $methName = $m->getParam(0);    $methName = $methName->scalarval();    if (strpos($methName, 'system.') === 0) {        $dmap = $XML_RPC_Server_dmap;        $sysCall = 1;    } else {        $dmap = $server->dmap;        $sysCall = 0;    }    if (isset($dmap[$methName])) {        if ($dmap[$methName]['docstring']) {            $r = new XML_RPC_Response(new XML_RPC_Value($dmap[$methName]['docstring']),                                                        'string');        } else {            $r = new XML_RPC_Response(new XML_RPC_Value('', 'string'));        }    } else {        $r = new XML_RPC_Response(0, $XML_RPC_err['introspect_unknown'],                                     $XML_RPC_str['introspect_unknown']);    }    return $r;}/** * @return void */function XML_RPC_Server_debugmsg($m){    global $XML_RPC_Server_debuginfo;    $XML_RPC_Server_debuginfo = $XML_RPC_Server_debuginfo . $m . "\n";}/** * A server for receiving and replying to XML RPC requests * * <code> * $server = new XML_RPC_Server( *     array( *         'isan8' => *             array( *                 'function' => 'is_8', *                 'signature' => *                      array( *                          array('boolean', 'int'), *                          array('boolean', 'int', 'boolean'), *                          array('boolean', 'string'), *                          array('boolean', 'string', 'boolean'), *                      ), *                 'docstring' => 'Is the value an 8?' *             ), *     ), *     1, *     0 * );  * </code> * * @category   Web Services * @package    XML_RPC * @author     Edd Dumbill <edd@usefulinc.com> * @author     Stig Bakken <stig@php.net> * @author     Martin Jansen <mj@php.net> * @author     Daniel Convissor <danielc@php.net> * @copyright  1999-2001 Edd Dumbill, 2001-2005 The PHP Group * @version    Release: 1.4.4 * @link       http://pear.php.net/package/XML_RPC */class XML_RPC_Server{    /**     * The dispatch map, listing the methods this server provides.     * @var array     */    var $dmap = array();    /**     * The present response's encoding     * @var string     * @see XML_RPC_Message::getEncoding()     */    var $encoding = '';    /**     * Debug mode (0 = off, 1 = on)     * @var integer     */    var $debug = 0;    /**     * The response's HTTP headers     * @var string     */    var $server_headers = '';    /**     * The response's XML payload     * @var string     */    var $server_payload = '';    /**     * Constructor for the XML_RPC_Server class     *     * @param array $dispMap   the dispatch map. An associative array     *                          explaining each function. The keys of the main

⌨️ 快捷键说明

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