我是Zend_Soap_Client
的新手。我将以下代码作为示例,并尝试了解它背后的原因。我是否正确理解它连接到远程服务器并读取指定的数据?最后,据我所知,它应该在test.txt
中保存这些数据。
我尝试运行此代码(我有必要的证书)。问题是没有数据保存到test.txt
。那么,有人可以向我解释一下这项技术,还是给我一个关于类似主题的好教程的链接?特别是,我对如何将必要的数据保存到本地XML文件或数组非常感兴趣。
P.S。如果我使用了一些不正确的定义,我会道歉,因为正如我在开始时提到的,我是Zend_Soap_Client
的新手和相关技术。
$wsdl = 'tttest.wsdl';
$options = array(
'local_cert' => 'certificate.pem',
'soap_version' => SOAP_1_1
);
$client = new Zend_Soap_Client($wsdl, $options);
$p = array(
'endUserId' => 'demo',
'sendTime' => array('value' => date("Y-m-d H:i:s")),
'eaupId' => array('chainDate' => array('value' => $chaindate), 'sequenceNumber' => 1)
);
$webServices = $client->retrieveEAUPCDRs($p);
$line = $client->getLastResponse();
$line = substr($line, 110);
$line = substr($line, 0, -22);
$xml = simplexml_load_string($line);
$result = $xml->xpath('//@ns3:title | //ns2:beginPosition | //ns2:endPosition | //ns4:upperLimit | //ns4:lowerLimit | //ns8:conditionalRouteType');
$filename = 'test.txt';
if ($fh = fopen($filename, "r")) {
while (!feof($fh)) {
$line = fgets($fh);
if (strlen($line) != 0) {
$chars = explode(";", $line, 5);
$np[$chars[0]] = "$chars[3],$chars[2]";
}
}
fclose($fh);
};
答案 0 :(得分:1)
此代码不会执行您认为正在执行的操作。
前三分之二(包括对xpath()
的调用)确实连接到服务器并获取一些信息,这些信息最终放在$result
变量中。但是,最后11行不使用前一代码中的任何数据($line
正在最后一位重用)。
此外,正在调用fopen()
" r"选项,表示只读。
我建议花一些时间在http://php.net上研究本代码中使用的各种PHP函数和语言结构,然后访问Zend Framework手册以获取有关Zend_Soap_Client
的更多信息:{{3 }}