PHP的企业应用-Weervice_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP的企业应用-Weervice

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:应用企业'this->
黑客防线网安网讯:  WebjxCom提示:PingService,博客程序提供一种通知机制,以便在第一时间将博客的更新信息发布到提供PingService服务的网站,写聚合的时候研究了一下先看标准吧这是一个标准的PingService...
  WebjxCom提示:PingService博客程序提供一种通知机制,以便在第一时间将博客的更新信息发布到提供PingService服务的网站写聚合的时候研究了一下先看标准吧这是一个标准的PingService,用XMLRPC来传数据的,注释写的这么详细,代码说明就不需要了吧,PHP5开启XMLRPC方法clie
  
  PingService,博客程序提供一种通知机制,以便在第一时间将博客的更新信息发布到提供PingService服务的网站,写聚合的时候研究了一下
  
  先看标准吧
  
  这是一个标准的PingService,用XMLRPC来传数据的,注释写的这么详细,代码说明就不需要了吧,PHP5开启XMLRPC方法
  
  client.php
  
  <?php
  
  $host='zxsv';
  
  $port=80;
  
  $rpc_server='/test/xmlrpc_server.php';
  
  $title='zxsv';
  
  $server='http://zxsv/test/';
  
  $rss='http://zxsv/test/rss.php';
  
  //weblogUpdates.Ping方法
  
  $Ping=xmlrpc_encode_request('weblogUpdates.Ping',array($title,$server));
  
  //weblogUpdates.extendedPing方法
  
  $extendedPing=xmlrpc_encode_request('weblogUpdates.extendedPing',array($title,$server,$rss));
  
  //调用rpc_client_call函数把所有请求发送给XML-RPC服务器端后获取信息
  
  $response=rpc_client_call($host,$port,$rpc_server,$Ping);
  
  $split='<?xmlversion="1.0"encoding="iso-8859-1"?>';
  
  $xml=explode($split,$response);
  
  $xml=$split.array_pop($xml);
  
  $response=xmlrpc_decode($xml);
  
  //输出从RPC服务器端获取的信息
  
  print_r($response);
  
  /**
  
  *函数:提供给客户端进行连接XML-RPC服务器端的函数
  
  *参数:
  
  *$host需要连接的主机
  
  *$port连接主机的端口
  
  *$rpc_serverXML-RPC服务器端文件
  
  *$request封装的XML请求信息
  
  *返回:连接成功成功返回由服务器端返回的XML信息,失败返回false
  
  */
  
  functionrpc_client_call($host,$port,$rpc_server,$request){
  
  $fp=fsockopen($host,$port);
  
  $query="POST$rpc_serverHTTP/1.0 User_Agent:XML-RPCClient Host:".$host." Content-Type:text/xml Content-Length:".strlen($request)." ".$request." ";
  
  if(!fputs($fp,$query,strlen($query))){
  
  $errstr="Writeerror";
  
  returnfalse;
  
  }
  
  $contents='';
  
  while(!feof($fp)){
  
  $contents.=fgets($fp);
  
  }
  
  fclose($fp);
  
  return$contents;
  
  }
  
  ?>
  
  server.php
  
  <?php
  
  /**
  
  *函数:提供给RPC客户端调用的函数
  
  *参数:
  
  *$method客户端需要调用的函数
  
  *$params客户端需要调用的函数的参数数组
  
  *返回:返回指定调用结果
  
  */
  
  functionrpc_server_extendedping($method,$params){
  
  $title=$params[0];
  
  $server=$params[1];
  
  $rss=$params[2];
  
  //中间的判断,成功返回$XML_RPC_String
  
  $XML_RPC_String=array('flerror'=>false,'message'=>'Thanksfortheping.');
  
  return$XML_RPC_String;
  
  }
  
  functionrpc_server_ping($method,$params){
  
  $title=$params[0];
  
  $server=$params[1];
  
  //中间的判断,成功返回$XML_RPC_String
  
  $XML_RPC_String=array('flerror'=>false,'message'=>'Thanksfortheping.');
  
  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
  
  <?php
  
  classPings{
  
  public$xmlrpc_server;
  
  public$xmlrpc_response;
  
  public$methodName;
  
  publicfunction__construct(){
  
  //产生一个XML-RPC的服务器端
  
  $this->xmlrpc_server=xmlrpc_server_create();
  
  $this->run();
  
  }
  
  //注册一个服务器端调用的方法rpc_server,实际指向的是ping函数
  
  publicfunctionrpc_server(){
  
  $this->methodName=!$this->methodName?'weblogUpdates.extendedPing':'weblogUpdates.Ping';
  
  xmlrpc_server_register_method($this->xmlrpc_server,$this->methodName,array(__CLASS__,"ping"));
  
  }
  
  /**
  
  *函数:提供给RPC客户端调用的函数
  
  *参数:
  
  *$method客户端需要调用的函数
  
  *$params客户端需要调用的函数的参数数组
  
  *返回:返回指定调用结果
  
  */
  
  publicfunctionping($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'=>'Thanksfortheping.','legal'=>"Youagreethatuseoftheblueidea.compingserviceisgovernedbytheTermsofUsefoundatwww.blueidea.com.");
  
  return$string;
  
  }
  
  publicfunctionupdate(){
  
  echo'这里放更新的一些条件';
  
  }
  
  publicfunctionrun(){
  
  $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服务器端资源
  
  publicfunction__destruct(){
  
  xmlrpc_server_destroy($this->xmlrpc_server);
  
  }
  
  }
  
  $Obj=newPings();
  
  ?>
  
  WebService的最常用的两种方法算是写齐了
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17568-1.html
网站维护教程更新时间:2012-09-21 05:21:22  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer