Edit report at https://bugs.php.net/bug.php?id=48216&edit=1
ID: 48216 Updated by: dmi...@php.net Reported by: mark at everytruckjob dot com Summary: PHP Fatal error: SOAP-ERROR: Parsing WSDL: Extra content at the end of the doc -Status: Open +Status: Assigned Type: Bug Package: SOAP related Operating System: CentOs 5.3 PHP Version: 5.3.0RC2 -Assigned To: +Assigned To: dmitry Block user comment: N Private report: N Previous Comments: ------------------------------------------------------------------------ [2011-10-05 07:01:28] emuns at quotify dot com This is happening on PHP 5.3.2 on Ubuntu :( Confirmed working on 5.2.17 ------------------------------------------------------------------------ [2011-09-22 02:47:23] kotekp at gmail dot com seems like: * php 5.3.5 windows has same bug * php 5.3.8 linux works fine ------------------------------------------------------------------------ [2011-07-12 08:41:12] tej dot nri at gmail dot com I believe that this problem is only happening in php 5.3.* as it was working in php 5.2.* The solution is also not very difficult. Steps: 1. Download the WSDL file by $ wget http://example.com/path/to/wsdl/file.xml 2. Put this wsdl file at some location. Let's say the path is /local/path/to/wsdl/file.xml 3. Now create the soap client by the locally saved file like below ------------------------------------------------------------------------------ $soapClient = new SoapClient('/local/path/to/wsdl/file.xml', array('features' => SOAP_USE_XSI_ARRAY_TYPE, 'trace' => 1, 'exceptions' => true)); $result = $soapClient->__soapCall('ServiceName', $data); ------------------------------------------------------------------------------ I believe this will work. ------------------------------------------------------------------------ [2011-01-26 17:16:12] g at miernicki dot com It appears this problem is not fixed on 5.3.4 or 5.3.5! I've instantiated a brand new (out of the box) nuSoap 0.9.5 server, defined a single service, and still receive the same error on both >> Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL:Couldn't load from 'http://server/index.php?wsdl' : Extra content at the end of the document in /home/user/consume.php:7 Stack trace: #0 /home/user/consume.php(7): SoapClient->SoapClient('http://server...') #1 {main} thrown in /home/user/consume.php on line 7 ------------------------------------------------------------------------ [2010-10-01 01:35:05] pguy at vrcis dot com Experiencing the same behavior going against a web service hosted on an Oracle 10g Application Server. It's using chunked transfer encoding. my PHP setup: Downloaded php-5.3.3-nts-Win32-VC9-x86.zip today to my Windows 7 64-bit PC, renamed php.ini-development to php.ini, uncommented extension_dir, extension=php_soap.dll, and soap.wsdl_cache_dir. Ran php from the command line using a php file containing the script with the SoapClient. Request headers: GET /path/endpoint?WSDL HTTP/1.1 Host: oas.internal.local:80 Authorization: Basic dGVzdDp0ZXN0 Connection: close Response headers: HTTP/1.1 200 OK Date: Thu, 30 Sep 2010 22:45:45 GMT Server: Oracle-Application-Server-10g/10.1.2.0.2 Oracle-HTTP-Server Cache-Control: private Connection: close Transfer-Encoding: chunked Content-Type: text/xml; charset=UTF-8 The body is broken into several chunks, all of which appear to have the correct sizes. Interestingly, I tried one of the wsdl urls posted in an earlier comment - http://webapi.allegro.pl/uploader.php?wsdl - and it worked fine. I noticed that its body was just one chunk. As others have noted, the wsdl that 5.3.3 is rejecting works just fine in 5.2.x. -Peter ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=48216 -- Edit this bug report at https://bugs.php.net/bug.php?id=48216&edit=1