【问题标题】:Reading data with Zend_Soap_Client使用 Zend_Soap_Client 读取数据
【发布时间】:2012-07-21 18:31:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: php soap zend-soap


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-07-09
      • 2020-03-08
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2020-09-17
      • 1970-01-01
      相关资源
      最近更新 更多