第一步:服务端文件
<?php $wsdlfile='webservice.wsdl'; ini_set('soap.wsdl_cache_enabled','0'); //关闭WSDL缓存 //001.创建webservice接口类 class UserAction{ //创建用户方法 public function create($username,$password) { return 'Create success!'; } //删除用户方法 public function del($userid) { return 'Del success!'; } } //002.通过第三方类库创建生成wsdl文件 require_once 'SoapDiscovery.class.php'; $SoapDis=new SoapDiscovery('UserAction','soap'); //soap可以自己定义,无所谓的 $WsdlRev=$SoapDis->getWSDL(); //if(!file_exists($wsdlfile)){ file_put_contents($wsdlfile, $WsdlRev); //} //003.通过wsdl创建服务 $webserver = new SoapServer($wsdlfile); $webserver->setClass('UserAction'); $webserver->handle();
第二步:客户端文件
<?php $ws=new SoapClient('http://learn.cn/webservice.wsdl'); $ret=$ws->create('gao','123456'); var_dump($ret); ?>
下载demo:
在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 = filter_input(INPUT_POST...
先在centos安装openssl,然后开始://生成私钥openssl genrsa -out rsa_private_key.pem 1024//生成公钥openssl rsa -in rsa_private_key.pem&...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
<?php $member = new class { public function getInfo() { ...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...