Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php SoapClient删除斜杠_Php_Soap Client - Fatal编程技术网

php SoapClient删除斜杠

php SoapClient删除斜杠,php,soap-client,Php,Soap Client,我和SoapClient有麻烦。 在我对webservice的请求中,有一些特殊的符号,如@、$、'等。 当我将其添加到$params数组时,SoapClient会向其添加斜杠。但远程Web服务在win平台上工作,不会删除斜杠并返回错误。看起来是他们需要解决的问题,而不是您需要更改代码 如果由于某种原因无法执行上述操作,则可以构建XML请求并手动发送,但这是一种不好的做法。另一种方法是使用SoapClient的替代品,例如(这个库使用起来非常简单)。不是100%确定它会自动转义特殊符号,但它本身

我和SoapClient有麻烦。 在我对webservice的请求中,有一些特殊的符号,如@、$、'等。
当我将其添加到
$params
数组时,SoapClient会向其添加斜杠。但远程Web服务在win平台上工作,不会删除斜杠并返回错误。

看起来是他们需要解决的问题,而不是您需要更改代码

如果由于某种原因无法执行上述操作,则可以构建XML请求并手动发送,但这是一种不好的做法。另一种方法是使用SoapClient的替代品,例如(这个库使用起来非常简单)。不是100%确定它会自动转义特殊符号,但它本身不会转义“”,所以我认为在您的情况下值得尝试

或者我还尝试在SoapClient中启用强制UTF-8转换,以查看这是否会改变情况:

$client = new SoapClient('http://foobar.com/webservice.asmx?WSDL', array('trace' => 1, 'encoding'=>' UTF-8'));

我不能说要从提供商方面解决这个问题(你说的“手动XML请求”是什么意思?通过我自己的类和重写_doRequest方法来实现?谢谢,我会尝试nusoap,我想,但我想从盒子中使用客户端,这比使用其他方法要好一点。我的意思是将你自己的XML编写为字符串并发送到服务器,实际上是的,编写你自己的实现:(顺便问一下,您是否尝试过“encoding”参数?