PHP NuSOAP生成无效的XML,因为xsd:string

时间:2015-07-20 10:53:51

标签: php xml nusoap

我使用NuSOAP在PHP中使用Web服务。

一切都很好,但是来自db的数据包含一个nul char,例如"\x00"这将使NuSOAP将其直接传递给XML消息。我没有测试过,但假设Unicode字节顺序标记"\xff\xfe""\xff\xff"也会产生类似的行为。

我知道如果我在将数据传递给NuSOAP之前预先处理我的数据以删除这些序列,这将解决问题,但这需要在许多地方添加代码,这些地方容易遗漏某些部分或忘记实现它用于新功能。

我的问题是,是否有办法告诉NuSOAP单独逃避/删除这些序列。

1 个答案:

答案 0 :(得分:0)

周围的人都在推荐,使用NuSOAP进行新项目并不是一个好主意。但在我的情况下,有很多遗留代码取决于它。

我可以通过修补NuSOAP库来解决我的问题,通过添加以下内容来丢弃nul字符:

        $val = str_replace("\x00", '', $val);

后:

        $val = str_replace('>', '>', $val);

没有深入并添加无效unicode和BOM的处理。