introspect.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 109 行
SVN-BASE
109 行
<html><head><title>xmlrpc</title></head><body><h1>Introspect demo</h1><h2>Query server for available methods and their description</h2><h3>The code demonstrates usage of multicall and introspection methods</h3><?php include("xmlrpc.inc"); function display_error($r) { print "An error occurred: "; print "Code: " . $r->faultCode() . " Reason: '" .$r->faultString()."'<br/>"; } // 'new style' client constuctor $c = new xmlrpc_client("http://phpxmlrpc.sourceforge.net/server.php"); print "<h3>methods available at http://" . $c->server . $c->path . "</h3>\n"; $m = new xmlrpcmsg('system.listMethods'); $r =& $c->send($m); if($r->faultCode()) { display_error($r); } else { $v=$r->value(); for($i=0; $i<$v->arraysize(); $i++) { $mname=$v->arraymem($i); print "<h4>" . $mname->scalarval() . "</h4>\n"; // build messages first, add params later $m1 = new xmlrpcmsg('system.methodHelp'); $m2 = new xmlrpcmsg('system.methodSignature'); $val = new xmlrpcval($mname->scalarval(), "string"); $m1->addParam($val); $m2->addParam($val); // send multiple messages in one pass. // If server does not support multicall, client will fall back to 2 separate calls $ms = array($m1, $m2); $rs =& $c->send($ms); if($rs[0]->faultCode()) { display_error($rs[0]); } else { $val=$rs[0]->value(); $txt=$val->scalarval(); if($txt != "") { print "<h4>Documentation</h4><p>${txt}</p>\n"; } else { print "<p>No documentation available.</p>\n"; } } if($rs[1]->faultCode()) { display_error($rs[1]); } else { print "<h4>Signature</h4><p>\n"; $val = $rs[1]->value(); if($val->kindOf()=="array") { for($j=0; $j<$val->arraysize(); $j++) { $x = $val->arraymem($j); $ret = $x->arraymem(0); print "<code>" . $ret->scalarval() . " " . $mname->scalarval() . "("; if($x->arraysize()>1) { for($k=1; $k<$x->arraysize(); $k++) { $y = $x->arraymem($k); print $y->scalarval(); if($k < $x->arraysize()-1) { print ", "; } } } print ")</code><br/>\n"; } } else { print "Signature unknown\n"; } print "</p>\n"; } } }?><hr/><em>$Id: introspect.php,v 1.8 2006/12/28 16:10:41 milosch Exp $</em></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?