第一步:服务端文件
<?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:
md5/sha1+salt方式是目前各大cms常用的加密方式,虽然salt安全,但是各大md5网站也在研究这个方向,那么我们应该选择password_hash动态hash来助力,一种密码有多种hash结果.看代码模拟登陆.<?php //01.注册 $user ='zhang...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
<?php $member = new class { public function getInfo() { ...
将jsonp转为PHP数组和对象。/** * jsonp转数组|Jsonp转json * @param string $jsonp jsonp字符串 * @param bool $as...