function parseResponse($headers, $data)
    {
        $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:');
        $this->appendDebug($this->varDump($headers));
        if (!isset($headers['content-type'])) {
            $this->setError('Response not of type text/xml (no content-type header)');

            return FALSE;
        }
        if (!strstr($headers['content-type'], 'text/xml')) {
            $this->setError('Response not of type text/xml: ' . $headers['content-type']);

            return FALSE;
        }
        if (strpos($headers['content-type'], '=')) {
            $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
            $this->debug('Got response encoding: ' . $enc);
            if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
                $this->xml_encoding = strtoupper($enc);
            } else {
                $this->xml_encoding = 'US-ASCII';
            }
        } else {
            // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1
            $this->xml_encoding = 'ISO-8859-1';
        }
        $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser');
        $parser = new nusoap_parser($data, $this->xml_encoding, $this->operations, $this->decode_utf8);
        // add parser debug data to our debug
        $this->appendDebug($parser->getDebug());
        // if parse errors
        if ($errstr = $parser->getError()) {
            $this->setError($errstr);
            // destroy the parser object
            unset($parser);

            return FALSE;
        } else {
            // get SOAP headers
            $this->responseHeaders = $parser->getHeaders();
            // get SOAP headers
            $this->responseHeader = $parser->get_soapheader();
            // get decoded message
            $return = $parser->get_soapbody();
            // add document for doclit support
            $this->document = $parser->document;
            // destroy the parser object
            unset($parser);

            // return decode message
            return $return;
        }
    }
function parseResponse($headers, $data)
    {
        $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:');
        $this->appendDebug($this->varDump($headers));
        if (!isset($headers['content-type'])) {
            $this->setError('Response not of type text/xml (no content-type header)');

            return FALSE;
        }
        if (!strstr($headers['content-type'], 'text/xml')) {
            $this->setError('Response not of type text/xml: ' . $headers['content-type']);

            return FALSE;
        }
        if (strpos($headers['content-type'], '=')) {
            $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
            $this->debug('Got response encoding: ' . $enc);
            if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
                $this->xml_encoding = strtoupper($enc);
            } else {
                $this->xml_encoding = 'US-ASCII';
            }
        } else {
            // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1
            $this->xml_encoding = 'ISO-8859-1';
        }
        $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser');
        $parser = new nusoap_parser($data, $this->xml_encoding, $this->operations, $this->decode_utf8);
        // add parser debug data to our debug
        $this->appendDebug($parser->getDebug());
        // if parse errors
        if ($errstr = $parser->getError()) {
            $this->setError($errstr);
            // destroy the parser object
            unset($parser);

            return FALSE;
        } else {
            // get SOAP headers
            $this->responseHeaders = $parser->getHeaders();
            // get SOAP headers
            $this->responseHeader = $parser->get_soapheader();
            // get decoded message
            $return = $parser->get_soapbody();
            // add document for doclit support
            $this->document = $parser->document;
            // destroy the parser object
            unset($parser);

            // return decode message
            return $return;
        }
    }
function parseResponse ( $ headers , $ data ) { $ this -> debug ( 'Entering parseResponse() for data of length ' . strlen ( $ data ) . ' headers:' ) ; $ this -> appendDebug ( $ this -> varDump ( $ headers ) ) ; if ( ! isset ( $ headers [ 'content-type' ] ) ) { $ this -> setError ( 'Response not of type text/xml (no content-type header)' ) ; return FALSE ; } if ( ! strstr ( $ headers [ 'content-type' ] , 'text/xml' ) ) { $ this -> setError ( 'Response not of type text/xml: ' . $ headers [ 'content-type' ] ) ; return FALSE ; } if ( strpos ( $ headers [ 'content-type' ] , '=' ) ) { $ enc = str_replace ( '"' , '' , substr ( strstr ( $ headers [ "content-type" ] , '=' ) , 1 ) ) ; $ this -> debug ( 'Got response encoding: ' . $ enc ) ; if ( preg_match ( '/^(ISO-8859-1|US-ASCII|UTF-8)$/i' , $ enc ) ) { $ this -> xml_encoding = strtoupper ( $ enc ) ; } else { $ this -> xml_encoding = 'US-ASCII' ; } } else { // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 $ this -> xml_encoding = 'ISO-8859-1' ; } $ this -> debug ( 'Use encoding: ' . $ this -> xml_encoding . ' when creating nusoap_parser' ) ; $ parser = new nusoap_parser ( $ data , $ this -> xml_encoding , $ this -> operations , $ this -> decode_utf8 ) ; // add parser debug data to our debug $ this -> appendDebug ( $ parser -> getDebug ( ) ) ; // if parse errors if ( $ errstr = $ parser -> getError ( ) ) { $ this -> setError ( $ errstr ) ; // destroy the parser object unset ( $ parser ) ; return FALSE ; } else { // get SOAP headers $ this -> responseHeaders = $ parser -> getHeaders ( ) ; // get SOAP headers $ this -> responseHeader = $ parser -> get_soapheader ( ) ; // get decoded message $ return = $ parser -> get_soapbody ( ) ; // add document for doclit support $ this -> document = $ parser -> document ; // destroy the parser object unset ( $ parser ) ; // return decode message return $ return ; } }
processes SOAP message returned from server

@param array  $headers The HTTP headers
@param string $data    unprocessed response data from server

@return    mixed    value of the message, decoded into a PHP type
@access   private
processes SOAP message returned from server