post /xxxxxxxxxxxx/ws/commonservice.asmx http/1.1
host: 202.82.66.147
content-type: text/xml; charset=utf-8
content-length: length
soapaction: http://xxxxxxxxxxxxxx/webservices/queryvoyageroute_onweb
string
string
string
string
string
string
---------------------------------------------------------------------------------------
返回:
http/1.1 200 ok
content-type: text/xml; charset=utf-8
content-length: length
schemaxml
-----------------------------------------------------------------------------------
soap_defencoding = 'utf-8'; $client->decode_utf8 = false; $client->xml_encoding = 'utf-8'; $setoffdate=array(0=>setoffdate,1=>2014-02-10); $fromportcode=array(0=>fromportcode,1=>sk);$toportcode=array(0=>toportcode,1=>zh);$parameters=array(0=>$setoffdate,1=>$fromportcode,2=>$toportcode);$param = array(0=>$parameters,1=>skg,2=>e);//$param[param1]=01;//$param[param2]=02;//$result = $client->__soapcall(getarticle, array( $param ));$result = $client->__call(queryvoyageroute_onweb, array( $param ));if (is_soap_fault($result)){ trigger_error(soap fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring}), e_user_error);}else{ $data = $result->queryvoyageroute_onwebresult ; //这里返回的是类,必须使用->得到元素的值 print_r($data); //$city_xml = simplexml_load_string($city); }?>
提示错误:
notice: undefined property: stdclass::$queryvoyageroute_onwebresult in d:\xampp\htdocs\ws\index.php on line 21
如何传参数过去类型不对?要怎么传过去呢?
回复讨论(解决方案) 你先检查 queryvoyageroute_onwebresult 是否拼写错误
没错则:
print_r($result); 看看结果
如果结果不包含期望内容
则检查传递的参数是否正确
由于没有看到你的 wsdl,所以不知道正确的参数该如何写
参数应是一个关联数组(关联键是wsdl),可能还是多维的
而你的是一个多维的下标数组
我已经搞定了,把参数名加进去就可以。
$param = array('parameters'=>$parameters,'portcompanycode'=>skg,'lang'=>c);
但是,中文调出来的出现一片乱码,怎么能知道,他是用哪种编码呢?
?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)jlfz?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)sjcd?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)xylc?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)skweb?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)aygj?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)shyg?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)bzly?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)lhmt?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)stsjd?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)qshk?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)kbsj?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)ygjd?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)wyn?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)hgjd?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)tggy?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)znhy?娓?捣涔?床娓?skzh娴? kkj2014-02-10 07:30msk-zh?(65)缍(27)?(0)璐靛?(12)mhzx
soap 嘛,当然是 utf-8 的啦
航班信息?
soap 嘛,当然是 utf-8 的啦
航班信息?
$client->xml_encoding = 'utf-8';
此处不是已经xml_encoding = 'utf-8'; 了吗?为何还是乱码?
soap 嘛,当然是 utf-8 的啦
航班信息?
搞定了,请版本帮我把3楼的回复给删除,谢谢。
header(content-type:text/html;charset=utf-8);
没错,是 utf-8 的
你当 gbk 显示当然就乱码了
没错,是 utf-8 的
你当 gbk 显示当然就乱码了
版主,麻烦你再看看,为何,我想print_r个别的列的表值不行呢?全部是simplexmlelement object ( )
上面的多了一个.
print_r($child->toport).;
用 simplexml_load_string 加载得到的都是 simplexmlelement 对象
具体要如何分析要是具体的数据而定
你可以贴出 $result 并说明需求
页面结果:
蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)skg蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)xylc蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)shyg蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)sjcd蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)baky蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)zyjd蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)yjgy
结果源文件:
蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)skg
蛇口港?仔客运码头skmac金星jx2014-02-10 09:30msk-mac普通位(28)头等位(5)特等位(8)xylc
蛇口港?仔客运码头skmac金星jx2014-02-10 11:00msk-mac普通位(42)头等位(31)特等位(0)yjgy
蛇口港?仔客运码头skmac迅隆5xl52014-02-10 11:00msk-mac普通位(42)头等位(31)特等位(0)skxrd
蛇口港?仔客运码头skmac迅隆5xl52014-02-10 19:00msk-mac普通位(148)头等位(7)特等位(8)scp
用 simplexml_load_string 加载得到的都是 simplexmlelement 对象
具体要如何分析要是具体的数据而定
你可以贴出 $result 并说明需求
我只想print_r:fromport、toport、setofftime的字段信息
$key = array('fromport', 'toport', 'setofftime');foreach($obj_xml->newdataset->table as $item) { foreach($key as $k) { $t[$k] = strval($item->$k); } $res[] = $t;}print_r($res);
array( [0] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 09:30 ) [1] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 09:30 ) [2] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 11:00 ) [3] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 11:00 ) [4] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 19:00 ))
$key = array('fromport', 'toport', 'setofftime');foreach($obj_xml->newdataset->table as $item) { foreach($key as $k) { $t[$k] = strval($item->$k); } $res[] = $t;}print_r($res);
array( [0] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 09:30 ) [1] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 09:30 ) [2] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 11:00 ) [3] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 11:00 ) [4] => array ( [fromport] => 蛇口港 [toport] => ?仔客运码头 [setofftime] => 2014-02-10 19:00 ))
谢谢版主,麻烦版主把8楼的回复给删除,我一会结贴。