Port to PEAR and more * @author Jan Schneider Maintenance * @copyright 2003-2007 The PHP Group * @license http://www.php.net/license/2_02.txt PHP License 2.02 * @link http://pear.php.net/package/SOAP */ require_once 'SOAP/Client.php'; /* This client runs against the example server in SOAP/example/server.php. It * does not use WSDL to run these requests, but that can be changed easily by * simply adding '?wsdl' to the end of the url. */ $wsdl = new SOAP_WSDL('http://localhost/SOAP/example/server.php?wsdl'); $soapclient = $wsdl->getProxy(); $ret = $soapclient->echoStringSimple('this is a test string'); // echo $soapclient->getWire(); print_r($ret); $ret = $soapclient->echoString('this is a test string'); print_r($ret); $ret = $soapclient->divide(22, 7); // echo $soapclient->getWire(); if (is_a($ret, 'PEAR_Error')) { echo 'Error: ' . $ret->getMessage() . "\n"; } else { echo 'Quotient is ' . $ret . "\n"; } $ret = $soapclient->divide(22, 0); if (is_a($ret, 'PEAR_Error')) { echo 'Error: ' . $ret->getMessage() . "\n"; } else { echo 'Quotient is ' . $ret . "\n"; } /* SOAPStruct is defined in the following file. */ require_once './example_types.php'; $struct = new SOAPStruct('test string', 123, 123.123); /* Tell the client to translate to classes we provide if possible. * You can explicitly set the translation for a specific class. * auto_translation works for all cases, but opens ANY class in the script to * be used as a data type, and may not be desireable. Both can be used on * client or server. */ $soapclient->_auto_translation = true; $soapclient->setTypeTranslation('{http://soapinterop.org/xsd}SOAPStruct', 'SOAPStruct'); $ret = $soapclient->echoStruct($struct->__to_soap()); // echo $soapclient->getWire(); print_r($ret); /* PHP doesn't support multiple OUT parameters in function calls, so we must * do a little work to make it happen here. This requires knowledge on the * developers part to figure out how they want to deal with it. */ $ret = $soapclient->echoStructAsSimpleTypes($struct->__to_soap()); if (is_a($ret, 'PEAR_Error')) { echo 'Error: ' . $ret->getMessage() . "\n"; } else { list($string, $int, $float) = array_values($ret); } echo "varString: $string\nvarInt: $int\nvarFloat: $float\n";