我使用NuSOAP在PHP中使用Web服务。
一切都很好,但是来自db的数据包含一个nul char,例如"\x00"
这将使NuSOAP将其直接传递给XML消息。我没有测试过,但假设Unicode字节顺序标记"\xff\xfe"
和"\xff\xff"
也会产生类似的行为。
我知道如果我在将数据传递给NuSOAP之前预先处理我的数据以删除这些序列,这将解决问题,但这需要在许多地方添加代码,这些地方容易遗漏某些部分或忘记实现它用于新功能。
我的问题是,是否有办法告诉NuSOAP单独逃避/删除这些序列。
答案 0 :(得分:0)
周围的人都在推荐,使用NuSOAP进行新项目并不是一个好主意。但在我的情况下,有很多遗留代码取决于它。
我可以通过修补NuSOAP库来解决我的问题,通过添加以下内容来丢弃nul字符:
$val = str_replace("\x00", '', $val);
后:
$val = str_replace('>', '>', $val);
没有深入并添加无效unicode和BOM的处理。