Thanks for all the replies to this issue.
It turned out that the problem was a bug in libxml. See
http://bugs.php.net/bug.php?id=45996&edit=1 for more information.
Regards,
Steve
David Zülke wrote:
That's the native PHP SOAP extension. http://php.net/soap
No idea why you would use anything else.
- David
On 09.01.2009, at 08:11, Stephen Gray <stephen.gray@anu.edu.au> wrote:
Hi David,
Thanks. Can you tell me what ext/soap is? I haven't come across this
before. Where do you get it.
0.12.0 is the version of the SOAP/Client PHP library which includes
the SOAP_Client class.
Thanks,
Steve
David Zülke wrote:
This sounds like some kind of IO filtering, firewall, proxy, whatever.
Why don't you use ext/soap? What is this weird "PHP SOAP 0.12.0" stuff?
- David
Am 07.01.2009 um 23:49 schrieb Stephen Gray:
Hi everyone,
Thanks for the replies. However the problem is not that the browser
doesn't display XML tags. If you try to display XML in a browser it
will not display the tags and just display what is between the tags.
This is not what is happening. What is happening is that the angle
brackets are being removed by SOAP client, so
<tag1><tag2>value</tag2></tag1> is converted to
tag1tag2value/tag2/tag1. This is what you get even if you use
var_dump() and write to disk.
By the way I am using the latest version of PHP SOAP (0.12.0).
Would be very grateful for any help. This is a huge problem for us
as it has completely broken our application.
Thanks,
Steve
David Zülke wrote:
Am 07.01.2009 um 07:01 schrieb Stephen Gray:
I am sure this is a problem with the PHP client not the server, as
when I replaced the PHP client with a Perl client the problem went
away.
It's not, the problem is you.
You are echo'ing something that looks like HTML. Your browser does
not display the tags.
Use var_dump() instead of echo() or view the page source...
ORIGINAL MESSAGE:
Hi everyone,
I've got a problem with a program using a PHP SOAP client that gets
XML from a Perl SOAP server. The problem is that the angle brackets
(< and >) are removed from the XML sent by the server by the SOAP
client. I am sure this is a problem with the PHP client not the
server, as when I replaced the PHP client with a Perl client the
problem went away.
The code for the PHP client is as follows:
__START CODE__
<?php
require_once 'SOAP/Client.php';
$endpoint = "http://localhost/cgi-bin/test.pl";
$soapoptions = array('namespace' => 'urn:Test',
'trace' => 1,
'timeout' => 600);
$soapclient = new SOAP_Client($endpoint);
$params = "";
$response = $soapclient->call('Main', $params, $soapoptions);
?>
<html>
<head>
</head>
<body>
<p>
<?php
echo $response;
?>
</p>
</body>
</html>
__END CODE__
Just in case it's relevant the code for the Perl server is:
__START CODE__
#!/usr/bin/perl -w
use SOAP::Transport::HTTP;
use Test;
SOAP::Transport::HTTP::CGI
-> dispatch_to('Test')
-> handle;
package Test;
sub Main {
return "<tag1><tag2>testing</tag2></tag1>";
}
__END CODE__
Does anyone have any idea what might be the problem? Any help much
appreciated.
Thanks,
Steve Gray
--
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php