PHP cURL在下载的xml文件中添加随机字符
我正在尝试使用PHP访问SOAP API,为此,我需要使用PHP cURL在我的计算机上下载WSDL描述文件的副本 这是我正在使用的代码:PHP cURL在下载的xml文件中添加随机字符,php,xml,curl,random,character-encoding,Php,Xml,Curl,Random,Character Encoding,我正在尝试使用PHP访问SOAP API,为此,我需要使用PHP cURL在我的计算机上下载WSDL描述文件的副本 这是我正在使用的代码: <?php $ch = curl_init(); $credit = ('some_username'.':'.'some_password'); curl_setopt($ch, CURLOPT_URL, 'https://somevalidaddress/file.asmx?WSDL'); curl_setopt($ch, CURLOPT_HTT
<?php
$ch = curl_init();
$credit = ('some_username'.':'.'some_password');
curl_setopt($ch, CURLOPT_URL, 'https://somevalidaddress/file.asmx?WSDL');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $credit);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
$path = 'C:\Wamp\www\mmx\test2.xml';
file_put_contents($path, $data);
?>
test2.xml文件在第345行(总共684行)每次都包含一个随机字符(如ø、@或VT等)。此外,文件的最后一个字符是剥离的
我在谷歌上搜索了这件事,一个接一个地读到了错误和缓冲区溢出,但我仍然没有解决问题的办法
有什么想法吗?谢谢 使用这个怎么样:
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode("$username:$password")
)
));
$data = file_get_contents('https://somevalidaddress/file.asmx?WSDL', false, $context);
如果使用浏览器下载文件,问题是否仍然存在?如果是这样,那就是远程服务的问题。我用浏览器下载文件,然后用记事本++查看文件时没有问题。这样文件就很好了。另外请注意,当使用此API的测试服务时,cURL下载工作正常。可能是因为WSDL测试服务描述较短(68行)?如果allow_url_fopen=off呢?@Loïc刚刚尝试了它,现在它在文件末尾添加了一个随机字符(例如?)。这个文件仍然不能被PHP Soap类解析。那么在将最后一个字符提供给PHP Soap类之前去掉它?哈!你说得对,那应该行!但我希望我能像@baldrs所说的那样保持allow\u url\u fopen=off。有没有关于卷曲解决方案的想法?尝试从浏览器中添加更多的标题,可能还有一些cookie