Edit report at https://bugs.php.net/bug.php?id=42223&edit=1
ID: 42223 Comment by: dsimon at roullier dot com Reported by: j8859 at clix dot pt Summary: SoapServer truncates XML document if Server Class includes UTF8 file Status: Bogus Type: Bug Package: SOAP related Operating System: Linux PHP Version: 5.2.4RC1 Assigned To: dmitry Block user comment: N Private report: N New Comment: I had the same problem, because of the encoding of my PHP file containing my web service (and SoapServer call). Encoding the file in UTF-8 (Without BOM !) solved my problem. Previous Comments: ------------------------------------------------------------------------ [2007-08-31 10:55:58] dmi...@php.net Just look into util-UTF8.php and remove first three bytes. It seems like a UTF-8 prefix for some Windows editor. ------------------------------------------------------------------------ [2007-08-06 19:33:52] j8859 at clix dot pt Description: ------------ SoapServer truncates XML document if the Server Class includes a UTF8 file. The error only occurs if the XML document returned is larger than 8000 bytes. In this case, tha XML document is truncated in the last 3 bytes. The BOM [Byte-Order Mark] also is 3 bytes long, could it be related with the bug? Reproduce code: --------------- There are a lot of files involved. Download them from: http://web.ioio.info/wstest/wstest.zip You can see the bug here: http://web.ioio.info/wstest/client.php You can download the ZIP file, extract it to an Apache directory, correct all addresses: change "web.ioio.info/wstest" for your own address in all files, and try the following in the TestWS.php file: 1) uncomment [require_once "util-ANSI.php";] comment [require_once "util-UTF8.php";] -> The error doesn't occur 2) On line 14, replace "800" by "700" (the XML document will be smaller than 8000 bytes) -> The error doesn't occur Expected result: ---------------- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:testResponse><return xsi:type="xsd:string">0123456789 ...(800 times: 0123456789)... 0123456789</return></SOAP-ENV:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope> Actual result: -------------- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:testResponse><return xsi:type="xsd:string">0123456789 ...(800 times: 0123456789)... 0123456789</return></SOAP-ENV:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelop -> Misses the last 3 chars: "e>\n" ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=42223&edit=1