Welcome 微信登录

首页 / 网页编程 / PHP / PHP的企业应用-WebService

PHP的企业应用-WebService2010-02-26 蓝色理想 Ping Service,博客程序提供一种通知机制,以便在第一时间将博客的更新信息发布到提供Ping Service服务的网站,写聚合的时候研究了一下

先看 标准 吧

这是一个标准的Ping Service,用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 = "<?xml version="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_server XML-RPC服务器端文件
* $request 封装的XML请求信息
* 返回:连接成功成功返回由服务器端返回的XML信息,失败返回false
*/
function rpc_client_call($host, $port, $rpc_server, $request) {
$fp = fsockopen($host, $port);
$query = "POST $rpc_server HTTP/1.0 User_Agent: XML-RPC Client Host: ".$host." Content-Type: text/xml Content-Length: ".strlen($request)." ".$request." ";
if (!fputs($fp, $query, strlen($query))) {
$errstr = "Write error";
return false;
}
$contents = "";
while (!feof($fp)){
$contents .= fgets($fp);
}
fclose($fp);
return $contents;
}
?>