We have done a lot of work on php soap. And we finished in two parts including phpsoap client and phpsoap server.
We finished in just like the xmlrpc does.

    I am sorry there is something wrong with our web server these days. It's ok now. You can take a check.
    www.gigaideas.com.cn/phpsoap

      The link is operational again..

        2 months later

        Pleeeeeeease Anthony,

        give us a way to find your SOAP implementation ... 😉

        Thanks in advance.

        Nicolas.

          a month later

          Dear Steven,

          I have tested your PHP class for SOAP.
          I wrote a PHP client program with your soap_client.inc included.
          Server side was build with Apache SOAP for Java and Tomcat server.
          It can work fine when using Apache SOAP 2.0 + Xerces 1.2.x.

          But I encountered problem when using Apache SOAP 2.2 (and Xerces 1.4.0).

          The bug was found after I tracing the codes of soap_client.inc.

          The following is the SOAP response from server side(Apache SOAP 2.2):

          HTTP/1.0 200 OK
          Content-Type: text/xml; charset=utf-8
          Content-Length: 471
          Set-Cookie2: JSESSIONID=m6y1fuixe1;Version=1;Discard;Path="/soap22"
          Set-Cookie: JSESSIONID=m6y1fuixe1;Path=/soap22
          Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.2.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.)

          <?xml version='1.0' encoding='UTF-8'?>
          <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
          <SOAP-ENV:Body>
          <ns1:getCurrencyResponse xmlns:ns1="urn:Currency" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <return xsi:type="xsd:string">28.18</return>
          </ns1:getCurrencyResponse>

          </SOAP-ENV:Body>
          </SOAP-ENV:Envelope>

          You can find there is an additional CR+LF before </SOAP-ENV:Body> tag.
          But our PHP client try to truncate HTTP header by finding CR+LF, this cause
          fault.
          This problem was originated from function parseResponse($data="") of
          soap_client.inc (about at line no. 640).

          The original code is:

          	// gotta get rid of headers here
          
          	if ((!$hdrfnd) && ereg("^(.*)\r\n\r\n",$data,$_xh[$parser]['ha'])) {
          		$data=ereg_replace("^.*\r\n\r\n", "", $data);
          		$hdrfnd=1;
          	}

          I try to fix the bug by replacing above code with the following:

          //..... Fix for combining use with Apache SOAP 2.2 RPCRouterServlet. 
          //..... From: "Growbal" <growbal@taiwan.com>
          if (!$hdrfnd) {
          	if (ereg("^(.*)\<\?xml",$data,$_xh[$parser]['ha'])) {
          		$data=ereg_replace("^(.*)\<\?xml", "<?xml", $data);
          		$hdrfnd=1;
          	}
          	elseif (ereg("^(.*)\<SOAP-ENV\:Envelope",$data,$_xh[$parser]['ha'])) {
          		$data=ereg_replace("^(.*)\<SOAP-ENV\:Envelope", 
          		"<SOAP-ENV:Envelope", $data);
          		$hdrfnd=1;
          	}
          }

          Then, we can get correct parsed SOAP response!

          Any comment is appreciated.

          Growbal Kuo
          growbal@pchome.com.tw

            2 months later

            Seems that the link MAY be dead again?

              2 months later
              a month later

              Has Steven taken this off the Gigaideas web site? It hasn't been available for a while? Does anyone know where it can be downloaded from

                a month later
                Write a Reply...