我正在尝试在供应商和我之间建立SOAP连接,以便在我们的数据库之间同步数据。 我已经设法用一个简单的soapCall连接他扔了那些php行($ service是我到达的Soap函数的名称,$ data是一个包含我的变量的关联数组):
$request = new SoapClient($client, array('soap_version' => SOAP_1_1));
$response = $request->$service($data);
如果我的XML变量方案没有像这个例子中那样的集合,那么这些行就可以工作了:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ServiceITryToReach xmlns="https://mysuplier:65100/">
<Login>login</Login>
<Password>pass</Password>
<Variables>
<Variable1>data</Variable1>
<Variable2>data</Variable2>
</Variables>
</ServiceITryToReach>
</soap:Body>
</soap:Envelope>
在上面的示例中,包含我的变量的关联数组将是:
array('Login'=>'login','Password'=>'pass','Variables'=>array('Variable1'=>'data','Variable2'=>'data'));
但是,如果我的XML方案包含相同类型的变量集合,我如何用PHP中的关联数组表示它?
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ServiceITryToReach xmlns="https://mysuplier:65100/">
<Login>login</Login>
<Password>pass</Password>
<Variables>
<Variable>
<data>data</data>
</Variable>
<Variable>
<data>data</data>
</Variable>
<Variable>
<data>data</data>
</Variable>
</Variables>
</ServiceITryToReach>
</soap:Body>
</soap:Envelope>
总之,我正在寻找另一种简单的方法来向我的供应商索取多个变量。最好的方法是在soapCall方法中使用直接XML输入而不是关联数组。 一个主意 ? 谢谢, 尼科