项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。
初期的解决办法是捕获异常,然后continue掉。
<?php try { $url = 'http://baidu.com'; $client = new SoapClient($url) or die("Database Connect Error"); } catch (SoapFault $e) { echo $e->getMessage(); }
上面的代码不到一个月再次挂掉了,错误是:
(1).SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://120.234.34.32/SecondHandMobileAPI1.asmx?WSDL' : failed to load external entity
(2).PHP Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host
如果对方的地址不存在或者不稳定的情况下进行实例化会直接抛出致命错误,本以为php内部实例化会抛出异常,方便捕获,但是却没有,于是直接屏蔽致命错误。
<?php error_reporting(0); try { $url = 'http://baidu.com'; $client = new SoapClient($url) or die("Database Connect Error"); } catch (SoapFault $e) { echo $e->getMessage(); }
这里给出的是Demo,事实上正式的网站对HTTP请求头要求完整性非常严格,建议完善请求头. 1.先看验证文件:<?php if($_COOKIE['username']=='a...
function objtoarr($obj){ $ret = array(); foreach($obj as $key =>$value){ if(gettype($value) == 'arr...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts { public f...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...