利用PHPRPC以及SOAP分别实现PHP的Webserver功能
服务端:phprpc服务端
<?php
/* phprpc 服务端演示
* time:2014-06-23
*/
require_once 'phprpc_server.php';//引入服务端
class test {//生成一个类
public function get($data = 'Java'){
return 'Hello '.$data;
}
}
$handle = new phprpc_server();//实例化服务端
$handle->add('get','test');//添加test类中的get方法
$handle->start();//握手开始
?>
服务端:soap服务端
<?php
/* soap 服务端演示
* time:2014-06-23
*/
class test {//生成一个类
public function get($data = 'Java'){
return 'Hello '.$data;
}
}
$config = array(
'location'=>'http://127.0.0.1/soap_server.php',
'uri'=>'soap_server.php'
);
$handle = new SoapServer(null,$config);//实例化服务端
$handle->setClass('test');//添加整个test类
$handle->handle();//握手开始
?>
客户端:phprpc客户端
<?php
/* phprpc 客户端演示
* time:2014-06-23
*/
require_once 'phprpc_client.php';//引入客户端
$handle = new PHPRPC_CLIENT('http://127.0.0.1/server.php');//实例化客户端并传入服务端url
echo $handle->get('Php!!');//调用get函数
?>
客户端:soap客户端
<?php
/* soap 客户端演示
* time:2014-06-23
*/
$config = array(
'location'=>'http://127.0.0.1/soap_server.php',
'uri'=>'soap_server.php'
);
$handle = new SoapClient(null,$config);
ECHO $handle->get('Java!!');
?>
个人愚见:说白了,两者都是通过序列化数据后进行传输,且表现形势与操作代码几乎一致,其他貌似还有很多这种实现webserver功能的方法:;事实作为我来说,我只需要了解其中的一些原理,会用一种即可。
利用PHPRPC以及SOAP分别实现PHP的Webserver功能的更多相关文章
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 利用onekeyup即可实现验证码的点击刷新功能
显示验证码 首先在Home/Controller下创建一个公共控制器PublicController 1 <php2 namespace Home\Controller;3 4 use Thin ...
- 利用 html的锚点(元素a)功能实现ajax单页面应用的浏览器后退前进功能
一.问题 随着AJax技术的普及,单页面web程序的应用越来越广泛. 所谓单页面应用程序,简单的说,就是应用只有一个主网页,第一次加载后,后续页面只会利用js和ajax到服务器获取数据进行页面的局部刷 ...
- 利用java的net包来实在数据采集的功能
最近有好多朋友问我,数据抓取用java怎么做,就是每天把新浪的内地新闻频道的新闻前20条,抓到自己的网站或系统里,今天我统一在这里提供一个简单的例子,由于在这个过程中还需要解析html字符串,所以,我 ...
- Salesforce学习之路-developer篇(二)利用Jenkins和Bitbucket实现Salesforce的CI/CD功能
上文提到,基于CRM的二次开发是必不可少的,但是在实际项目中CI/CD是不可忽略的一个重要部分,与传统的Java,Python项目不同,如果对Salesforce进行持续集成和持续部署呢? 结合找到的 ...
- 利用bootstrap3的分页样式和jq实现分页功能
1源码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 生成EXCEL文件是经常需要用到的功能,我们利用一些开源库可以很容易实现这个功能。
方法一:利用excellibrary,http://code.google.com/p/excellibrary/ excellibrary是国人写的开源组件,很容易使用,可惜貌似还不支持.xlsx( ...
- Salesforce学习之路(四)利用Jenkins和Git实现Salesforce的CI/CD功能
上文提到,基于CRM的二次开发是必不可少的,但是在实际项目中CI/CD是不可忽略的一个重要部分,与传统的Java,Python项目不同,如果对Salesforce进行持续集成和持续部署呢? 结合找到的 ...
- 工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能
登入界面<% Cookie[] cks =request.getCookies(); String str=null; for(Cookie ck:cks) { if(ck.getName(). ...
随机推荐
- python(6)-shutil模块
高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中: #源码 def copyfileobj(fsr ...
- linux - 文件查找及压缩
文件查找: 1. which 查找可以执行文件,只搜索$PATH里的目录 $ which ls /bin/ls which只搜索$PATH里的目录,如果搜索当前目录的文件是没有任何结果的 $ ...
- 为什么Java byte 类型的取值范围是-128~127 (转)
概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ,然 后 对 整个数 加 1 步骤: 1.确定byte是1个字节,也就是8位 2.最大的应该是0111 1111,因为第一位是符号位, ...
- Nginx HTTP User_agent
假设我这里有大量图像.CSS.javascript等静态文件,分别放在后端服务器 192.168.1.5 和 192.168.1.6上,那么我如何利用nginx的反向代理功能将不同的 http_us ...
- html5 之 canvas 相关知识(三)API-strokeStyle-shadow相关
strokeStyle定义和用法 strokeStyle 属性设置或返回用于笔触的颜色.渐变或模式. context.strokeStyle=color|gradient|pattern;//指示绘图 ...
- 初识CSS3之媒体查询(2015年05月31日)
一.什么是媒体查询 媒体查询是面向不同设备提供不同样式的一种实现方式,它可以为每种类型的用户提供最佳的体验,也是响应式设计的实现方式. 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各 ...
- HttpClient(4.3.5) - HttpClient Proxy Configuration
Even though HttpClient is aware of complex routing scemes and proxy chaining, it supports only simpl ...
- SQL数据库设计三范式
关系型数据库将数据库设计需要遵循的一些规则叫做“范式”,最基本的三个范式(1NF.2NF.3NF)简称三范式.第一范式是满足第二范式的基础,而第一.二范式又是满足第三范式的基础. 第一范式 表中的字段 ...
- HDOJ2022海选女主角
海选女主角 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 【原创】birt 报表工具 不能运行 不能预览问题
在windows 7以上版本中可能会遇到不能预览,或者不能再web查看器中查看 ,但是可以以html的方式查看.在网上看了好多解决方法,我试了都不可行,说明我遇到的问题不和他们的一样,这样怎么办呢? ...