{"id":986,"date":"2017-05-23T10:52:55","date_gmt":"2017-05-23T02:52:55","guid":{"rendered":"http:\/\/www.luwl.net\/?p=986"},"modified":"2017-06-01T22:15:47","modified_gmt":"2017-06-01T14:15:47","slug":"php%e8%a7%a3%e6%9e%90webservice%e6%9c%8d%e5%8a%a1","status":"publish","type":"post","link":"http:\/\/www.luwl.net\/?p=986","title":{"rendered":"php\u89e3\u6790webservice\u670d\u52a1"},"content":{"rendered":"<p>webservice\u670d\u52a1\u6211\u8ba4\u4e3a\u4e0d\u662f\u4e2a\u975e\u5e38\u901a\u7528\u7684\u63a5\u53e3\uff0c\u867d\u7136\u8fd9\u662f\u4e2a\u6807\u51c6\u7684\u63a5\u53e3\uff0c\u4f46\u662f\u8de8\u8bed\u8a00\u5904\u7406\u95ee\u9898\u8fd8\u662f\u975e\u5e38\u591a\u7684\uff0c\u6bd4\u5982\u6211\u7528PHP\u6765\u5904\u7406java\u63d0\u4f9b\u7684webservice\u5c31\u662f\u4e00\u4e2a\u975e\u5e38\u9ebb\u70e6\u7684\u4e8b\u60c5\u3002<\/p>\n<p>PHP\u81ea\u5e26soap\u6269\u5c55\uff0c\u672c\u6765\u4ee5\u4e3a\u7528\u6765\u89e3\u6790java\u7684soap\u670d\u52a1\u5f88\u5bb9\u6613\uff0c\u4f46\u53d1\u73b0\u95ee\u9898\u5f88\u591a\uff0cphp\u95f4\u901a\u8baf\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u4f46\u683c\u5f0f\u4e0ejava\u7684\u4e0d\u4e00\u6837\uff0c\u5c31\u901a\u8baf\u4e0d\u4e0a\u4e86\u3002<\/p>\n<p>\u611f\u6168\uff1ajson\u662f\u771f\u5fc3\u4e0d\u9519\u7684\u3002<\/p>\n<p>\u597d\u5728PHP\u65e0\u6bd4\u5f3a\u5927\uff0c\u6a21\u62df\u6570\u636e\u4e5f\u5b9e\u73b0\u4e86\u6570\u636e\u901a\u8baf\u3002<\/p>\n<p>\u9996\u5148\uff0c\u56e0\u4e3aphp\u7684soap\u6269\u5c55\u63d0\u4f9b\u7ed9\u670d\u52a1\u5668\u7684\u6570\u636e\uff0c\u670d\u52a1\u5668\u7aef\u4e0d\u5339\u914d\uff0c\u6240\u4ee5\u5c31\u4e0d\u7528soap\u6269\u5c55\u4e86\uff0c\u6539\u7528curl\u6a21\u62df\u3002<\/p>\n<p>\u5b8c\u6574\u4ee3\u7801\uff1a<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\r\n&lt;?php\r\n$soap='&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\r\n&lt;soap:Envelope xmlns:soap=&quot;http:\/\/schemas.xmlsoap.org\/soap\/envelope\/&quot;&gt;\r\n&lt;soap:Body&gt;\r\n&lt;AisQuery xmlns=&quot;http:\/\/www.kingdee.com\/Public&quot;\/&gt;\r\n&lt;\/soap:Body&gt;\r\n&lt;\/soap:Envelope&gt;';\r\n\/\/$soap=file_get_contents(&quot;A.xml&quot;);\/\/\u4ece\u6587\u4ef6\u83b7\u53d6\u5b57\u7b26\u4e32\u7684\u65b9\u5f0f\r\n\/\/echo $soap;\r\n$ch=curl_init();\r\n\/\/curl_setopt($ch,CURLOPT_URL,&quot;http:\/\/192.16.1.12\/soap.php&quot;);\r\ncurl_setopt($ch,CURLOPT_URL,&quot;http:\/\/192.168.100.108\/KDWEBSERVICE\/Public.asmx&quot;);\r\ncurl_setopt($ch,CURLOPT_RETURNTRANSFER,1);\r\ncurl_setopt($ch,CURLOPT_POST,1);\r\ncurl_setopt($ch, CURLOPT_HTTPHEADER, Array(&quot;Content-Type:text\/xml; charset=utf-8&quot;));\r\ncurl_setopt($ch,CURLOPT_POSTFIELDS,$soap);\r\n$data=curl_exec($ch);\r\ncurl_close($ch);\r\n\/\/echo $data;\/\/\u5f97\u5230\u8fd4\u56de\u6570\u636e\r\n\r\n$dom = new DOMDocument();\r\n$dom-&gt;loadXML($data);\r\n\/\/ \u83b7\u53d6\u6240\u6709\u7684AisInfo\u6807\u7b7e\r\n$AisInfo = $dom -&gt;getElementsByTagName(&quot;AisInfo&quot; );\r\n\/\/ \u5faa\u73af\u904d\u5386AisInfo\u6807\u7b7e\r\nforeach ($AisInfo as $post ){\r\n\/\/ \u83b7\u53d6AisInfo\u6807\u7b7e\r\n$AisName = $post -&gt;getElementsByTagName(&quot;AisName&quot; );\r\n$AisID = $post -&gt;getElementsByTagName(&quot;AisID&quot; );\r\n$Number = $post -&gt;getElementsByTagName(&quot;Number&quot; );\r\n\/**\r\n* \u8981\u83b7\u53d6\u6807\u7b7e\u7684\u5c5e\u6027\u8981\u5206\u4e24\u90e8\u8d70\r\n* &lt; title id =&quot;1&quot; &gt; PHP XML\u5904\u7406&lt;\/ title &gt;\r\n* 1. \u83b7\u53d6\u6807\u7b7e\u4e2d\u6240\u6709\u5c5e\u6027\u7684\u5217\u8868\u4e5f\u5c31\u662f$*-&gt;item(0)-&gt;attributes\r\n* 2. \u83b7\u53d6\u6807\u7b7e\u4e2d\u7b2c\u4e00\u4e2a\u5c5e\u6027\uff0c\u56e0\u4e3a\u5176\u5728\u7b2c\u4e00\u4f4d\u6240\u4ee5\u7528item(0)\r\n* 3. $title -&gt;item(0)-&gt;attributes-&gt;item(0)-&gt;nodeValue\r\n*\r\n* \u5c0f\u63d0\u793a\uff1a\r\n* \u82e5\u53d6\u5c5e\u6027\u7684\u503c\u53ef\u4ee5\u7528item(*)-&gt;nodeValue\r\n* \u82e5\u53d6\u5c5e\u6027\u7684\u6807\u7b7e\u53ef\u4ee5\u7528item(*)-&gt;nodeName\r\n* \u82e5\u53d6\u5c5e\u6027\u7684\u7c7b\u578b\u53ef\u4ee5\u7528item(*)-&gt;nodeType\r\n*\/\r\necho $AisName -&gt;item(0)-&gt;nodeName .': '. $AisName -&gt;item(0)-&gt;nodeValue . &quot;&lt;br \/&gt;&quot; ;\r\necho &quot;AisID: &quot; . $AisID -&gt;item(0)-&gt;nodeValue . &quot;&lt;br \/&gt;&quot; ;\r\necho &quot;Number: &quot; . $Number-&gt;item(0)-&gt;nodeValue . &quot;&lt;br \/&gt;&quot; ;\r\necho &quot;Version: &quot; . $post -&gt;getElementsByTagName(&quot;Version&quot;) -&gt;item(0)-&gt;nodeValue . &quot;&lt;br \/&gt;&lt;br \/&gt;&quot; ;\r\n}\r\n?&gt;\r\n\r\n<\/pre>\n<p>php\u76f4\u63a5post\u4e86\u670d\u52a1\u5668\u9700\u8981\u7684xml\u6570\u636e\uff0c\u8fd4\u56de\u7684\u6570\u636e\u662fxml\u7b26\u5408soap\u89c4\u8303\u3002<\/p>\n<p>\u8fd9\u4e2axml\u7684\u5904\u7406\u4e5f\u9700\u8981\u4e00\u70b9\u7279\u6b8a\uff0c\u9996\u5148\uff0cxml_parse_into_struct\uff0c\u8fd9\u4e2a\u65b9\u5f0f\u53ef\u4ee5\u83b7\u53d6\u6570\u636e\uff0c\u4f46\u662f\u5f97\u5230\u7684\u6570\u7ec4\u7684\u683c\u5f0f\u6211\u770b\u4e86\uff0c\u4e0d\u662f\u5f88\u5bb9\u6613\u5904\u7406\u3002\u518d\u6709\u80fd\u76f4\u63a5\u5904\u7406\u7684\u5c31\u662f\u8fd9\u4e2aDOMDocument\u4e86\u3002\u8fd9\u4e2a\u83b7\u53d6\u5230\u7684\u662fdom\u5bf9\u8c61\uff0c\u6309\u7167\u4e0a\u6587\u7684\u4ee3\u7801\u53ef\u4ee5\u89e3\u6790\uff0c\u8fd8\u6709\u53e6\u4e00\u79cd\u65b9\u6cd5\u662f\u89e3\u6790\u6210\u6570\u7ec4\u518d\u5904\u7406\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nfunction getArray($node) {\r\n$array = false;\r\n\r\nif ($node-&gt;hasAttributes()) {\r\nforeach ($node-&gt;attributes as $attr) {\r\n$array&#x5B;$attr-&gt;nodeName] = $attr-&gt;nodeValue;\r\n}\r\n}\r\n\r\nif ($node-&gt;hasChildNodes()) {\r\nif ($node-&gt;childNodes-&gt;length == 1) {\r\n$array&#x5B;$node-&gt;firstChild-&gt;nodeName] = getArray($node-&gt;firstChild);\r\n} else {\r\nforeach ($node-&gt;childNodes as $childNode) {\r\nif ($childNode-&gt;nodeType != XML_TEXT_NODE) {\r\n$array&#x5B;$childNode-&gt;nodeName]&#x5B;] = getArray($childNode);\r\n}\r\n}\r\n}\r\n} else {\r\nreturn $node-&gt;nodeValue;\r\n}\r\nreturn $array;\r\n}\r\n\r\n$doc=new DOMDocument();\r\n$doc-&gt;loadXML($data);\r\n$root=$doc-&gt;documentElement;\r\n\/\/var_dump($root);\r\n\/\/print_r($root);\r\n\/\/print_r(getArray($root-&gt;firstChild));\r\n\/\/print_r(getArray($root-&gt;firstChild-&gt;firstChild-&gt;firstChild-&gt;firstChild));\r\n\/\/$items=getArray($root-&gt;firstChild-&gt;firstChild-&gt;firstChild-&gt;firstChild);\r\n$items=getArray($root-&gt;firstChild);\r\n\/\/print_r($items);\r\n$num=count($items&#x5B;'AisQueryResponse']&#x5B;'AisQueryResult']&#x5B;0]&#x5B;'AisInfo']);\r\nfor($i=0;$i&lt;$num;$i++){\r\necho 'AisID:'.$items&#x5B;'AisQueryResponse']&#x5B;'AisQueryResult']&#x5B;0]&#x5B;'AisInfo']&#x5B;$i]&#x5B;'AisID']&#x5B;0]&#x5B;'#text'].'&lt;\/br&gt;';\r\necho 'AisName:',$items&#x5B;'AisQueryResponse']&#x5B;'AisQueryResult']&#x5B;0]&#x5B;'AisInfo']&#x5B;$i]&#x5B;'AisName']&#x5B;0]&#x5B;'#text'],'&lt;\/br&gt;';\r\necho 'Number:',$items&#x5B;'AisQueryResponse']&#x5B;'AisQueryResult']&#x5B;0]&#x5B;'AisInfo']&#x5B;$i]&#x5B;'Number']&#x5B;0]&#x5B;'#text'],'&lt;\/br&gt;';\r\necho 'Version:',$items&#x5B;'AisQueryResponse']&#x5B;'AisQueryResult']&#x5B;0]&#x5B;'AisInfo']&#x5B;$i]&#x5B;'Version']&#x5B;0]&#x5B;'#text'],'&lt;\/br&gt;';\r\n}\r\n\r\n<\/pre>\n<p>\u7528getArray\u51fd\u6570\u83b7\u53d6\u5230\u6570\u7ec4\u5bf9\u8c61\uff0c\u7136\u540e\u5904\u7406\u6570\u7ec4\u5c31\u53ef\u4ee5\u3002\u4f46\u662f\u53d1\u73b01\u6761\u6570\u636e\u7684\u65f6\u5019\u548c\u4e24\u6761\u6570\u636e\u7684\u60c5\u51b5\u6570\u7ec4\u7684\u6df1\u5ea6\u53d1\u751f\u4e86\u53d8\u5316\uff0c\u8fd8\u6ca1\u6709\u7ec6\u7814\u7a76\u3002<\/p>\n<p>2017-6-1\u66f4\u65b0\uff1a<\/p>\n<p>\u672c\u6765\u4ee5\u4e3a\u4e0a\u8fb9\u7684\u4ee3\u7801\u53ef\u4ee5\u7528\u4e86\uff0c\u4f46\u6d4b\u8bd5k3v14.2\u6ca1\u6709\u95ee\u9898\uff0c\u6d4b\u8bd5\u6211\u4eec\u516c\u53f8\u6b63\u5728\u7528\u7684k3v10.3\u5374\u4e0d\u80fd\u901a\u8fc7\u3002\u8bf4\u660e\u4ed6\u4eec\u7684\u670d\u52a1\u5668\u672c\u8eab\u5c31\u4e0d\u662f\u4e00\u6837\u7684\u3002\u4fa6\u542c\u4e86\u4e0b\u6e90\u7801\uff0c\u53d1\u73b010.3\u7248\u672c\u7684k3\u9700\u8981\u4f20\u9012\u7684\u5934\u662f\u4e0d\u4e00\u6837\u7684\u3002\u6539\u6539\u5c31\u53ef\u4ee5\u9002\u914d\u4e86\u3002\u4e3b\u8981\u662fcurl\u90e8\u5206\u7684\u4e0d\u540c\u3002\u9700\u8981\u4e00\u4e2aSOAPAction\u3002\u53e6\u5916\u518d\u8bf4\u4e0b\u4e00\u4e2a\u5c0f\u5de5\u5177\uff0cSRSniffer\uff0c\u8fd9\u4e2a\u8f6f\u4ef6\u771f\u4e0d\u9519\uff0c\u5176\u5b83\u7684\u8f6f\u4ef6\u5982Fiddler2\u7b49\u9700\u8981\u505a\u4ee3\u7406\u554a\uff0c\u6216\u8005\u9700\u8981.net\u73af\u5883\u554a\uff0c\u6216\u8005\u9700\u8981\u53ea\u80fd\u8c03\u8bd5\u6d4f\u89c8\u5668\u7684\u901a\u8baf\u4ec0\u4e48\u7684\uff0c\u8fd9\u4e2a\u771f\u662f\u7b80\u5355\u597d\u7528\u3002<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n\r\n$ch=curl_init();\r\ncurl_setopt($ch,CURLOPT_URL,&quot;http:\/\/192.168.100.108\/KDWEBSERVICE\/Public.asmx&quot;);\r\ncurl_setopt($ch,CURLOPT_RETURNTRANSFER,1);\r\ncurl_setopt($ch,CURLOPT_POST,1);\r\n\/\/curl_setopt($ch, CURLOPT_HTTPHEADER, Array(&quot;Content-Type:text\/xml&quot;));\/\/k3v14.2 testpass\r\ncurl_setopt($ch, CURLOPT_HTTPHEADER, Array(&quot;Content-Type:text\/xml&quot;,&quot;SOAPAction:\\&quot;http:\/\/www.kingdee.com\/Public\/AisQuery\\&quot;&quot;));\/\/k3v10.3 testpass\r\ncurl_setopt($ch,CURLOPT_POSTFIELDS,$soap);\r\n$data=curl_exec($ch);\r\ncurl_close($ch);\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>webservice\u670d\u52a1\u6211\u8ba4\u4e3a\u4e0d\u662f\u4e2a\u975e\u5e38\u901a\u7528\u7684\u63a5\u53e3\uff0c\u867d\u7136\u8fd9\u662f\u4e2a\u6807\u51c6\u7684\u63a5\u53e3\uff0c\u4f46\u662f\u8de8 &hellip; <a href=\"http:\/\/www.luwl.net\/?p=986\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-986","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/posts\/986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.luwl.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=986"}],"version-history":[{"count":3,"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/posts\/986\/revisions"}],"predecessor-version":[{"id":994,"href":"http:\/\/www.luwl.net\/index.php?rest_route=\/wp\/v2\/posts\/986\/revisions\/994"}],"wp:attachment":[{"href":"http:\/\/www.luwl.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.luwl.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=986"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.luwl.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}