0

我是新手Zend_Soap_Client。我以以下代码为例,并尝试了解其背后的内容。我是否正确理解它连接到远程服务器并读取指定的数据?最后,据我了解,应该将这些数据保存在test.txt.

我试图运行这段代码(我有必要的证书)。问题是没有数据保存到test.txt. 那么,有人可以向我解释一下这项技术,或者给我一个关于类似主题的好教程的链接吗?特别是,我对如何将必要的数据保存到本地 XML 文件或数组非常感兴趣。

PS如果我使用了一些不正确的定义,我深表歉意,因为正如我在开头提到的那样,我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);
};
4

1 回答 1

1

这段代码不会做你认为它正在做的事情。

前三分之二(直到并包括对 的调用xpath())确实连接到服务器并获取一些信息,这些信息最终被放置在$result变量中。但是,最后 11 行不使用前一个代码中的任何数据($line在最后一位中被重新使用)。

此外,fopen()正在使用“r”选项调用,这意味着只读。

我建议花一些时间在http://php.net上研究此代码中使用的各种 PHP 函数和语言结构,然后访问 Zend 框架手册以获取更多信息Zend_Soap_Client: http: //framework.zend.com /manual/1.12/en/manual.html

于 2012-09-10T02:01:22.573 回答