您好,欢迎访问一九零五行业门户网

PHP企业级应用之WebService续篇_PHP

php企业级应用之webservice篇
ping service,博客程序提供一种通知机制,以便在第一时间将博客的更新信息发布到提供ping service服务的网站,写聚合的时候研究了一下。
先看 标准 吧
这是一个标准的ping service,用xmlrpc来传数据的,注释写的这么详细,代码说明就不需要了吧,php5开启xmlrpc方法
client.php
以下为引用的内容:
server.php
以下为引用的内容:
false,'message'=>'thanks for the ping.');
  return $xml_rpc_string;
}
function rpc_server_ping($method, $params) {
    $title = $params[0];
    $server = $params[1];
        //中间的判断,成功返回$xml_rpc_string
    $xml_rpc_string = array('flerror'=>false,'message'=>'thanks for the ping.');
  return $xml_rpc_string;
}
//产生一个xml-rpc的服务器端
$xmlrpc_server = xmlrpc_server_create();
//注册一个服务器端调用的方法rpc_server,实际指向的是rpc_server_extendedping函数
xmlrpc_server_register_method($xmlrpc_server, weblogupdates.extendedping, rpc_server_extendedping);
xmlrpc_server_register_method($xmlrpc_server, weblogupdates.ping, rpc_server_ping);
//接受客户端post过来的xml数据
$request = $http_raw_post_data;
//print_r($request);
//执行调用客户端的xml请求后获取执行结果
$xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null);
//把函数处理后的结果xml进行输出
header('content-type: text/xml');
echo $xmlrpc_response;
//销毁xml-rpc服务器端资源
xmlrpc_server_destroy($xmlrpc_server);
?>
类写的,有bug
以下为引用的内容:
xmlrpc_server = xmlrpc_server_create ();
        $this->run ();
    }
//注册一个服务器端调用的方法rpc_server,实际指向的是ping函数
    public function rpc_server() {       
        $this->methodname = !$this->methodname ? 'weblogupdates.extendedping':'weblogupdates.ping';       
        xmlrpc_server_register_method ( $this->xmlrpc_server, $this->methodname, array (__class__, ping));       
    }
        /**
     * 函数:提供给rpc客户端调用的函数
     * 参数:
     * $method 客户端需要调用的函数
     * $params 客户端需要调用的函数的参数数组
     * 返回:返回指定调用结果
     */   
    public function ping($method, $params) {
        $this->title = $params [0];
        $this->server = $params [1];
        $this->rss = $params [2];
        $this->tag = $params [3];
        //$a  = $this->title ? $this->update():'';
        $string = array ('flerror' => false, 'message' => 'thanks for the ping.', 'legal' => you agree that use of the blueidea.com ping service is governed by the terms of use found at www.blueidea.com. );
        return $string;
    }
public function update(){
        echo '这里放更新的一些条件';
    }
public function run() {   
        $this->rpc_server ();   
        $request = isset ( $globals [http_raw_post_data] ) ? file_get_contents ( php://input ) : $globals [http_raw_post_data];       
        $this->xmlrpc_response = xmlrpc_server_call_method ( $this->xmlrpc_server, $request, null );
        //把函数处理后的结果xml进行输出
        header ( 'content-type: text/xml' );
        echo $this->xmlrpc_response;
    }
//销毁xml-rpc服务器端资源
    public function __destruct() {
        xmlrpc_server_destroy ( $this->xmlrpc_server );
    }
}
$obj = new pings ( );
?>
webservice的最常用的两种方法算是写齐了
其它类似信息

推荐信息