PHP在处理来自XML的已解析URL时遇到问题

时间:2014-02-11 21:39:03

标签: php xml nusoap

我通过在NUSOAP 0.7.3和PHP 4.4.9上运行的webservice接收结果。 XML请求被反序列化为一个数组,该数组包含一个包含URL的元素:

http://results-demo.talegent.co.nz/DesktopModules/Platform/RateVideo.aspx?VID=/////2MAAAAJc2NyZWVuaW5nDTc2ZjVlNTY3LWVmODUxAAAAAAA=

我可以很好地回复这个URL,但是一旦我尝试执行任何操作,例如作为函数的参数赋值,我的脚本就会失败。

该问题似乎与VID值的长度和字符有关。 如果我将值缩短为例如'2MAAAAJc2NyZWVuaW5nDTc2ZjVlN'并删除正斜杠和等号,最后工作正常。那么VID的值是否有最大长度,是否应该在xml请求中发送之前对查询字符串进行编码?

提前致谢。

2 个答案:

答案 0 :(得分:0)

尝试使用urlencode()将VID传递给您的函数,然后在函数端取消编码。没有看到你的功能,我就不能再具体了。

    $var = urlencode("VID=/////2MAAAAJc2NyZWVuaW5nDTc2ZjVlNTY3LWVmODUxAAAAAAA=");

someFunction($var)
 {
    $url = "http://results-demo.talegent.co.nz/DesktopModules/PlatformRateVideo.aspx?VID=".urldecode($var);   
 }

参见PHPFiddle:http://phpfiddle.org/main/code/vfi-yee

答案 1 :(得分:0)

通过在问号上展开URL并对结果数组进行全球化而不是传递给作为参数的函数来解决问题。不漂亮,但它有效。