我在下载使用HTTP摘要验证保护的文件时遇到问题。我设法让curl的命令行版本工作:
regress
然而,当我尝试使用PHP cURL进行连接时,我只是没有得到任何东西,也没有弄清楚如何指定下载文件的位置(如果它连接成功):
curl --location -u Myusername:mypassword -C - --digest -k https://www.thefile.com/file.xml.gz > /location/to/download/file.xml.gz
任何人都可以了解如何将上述cURL命令行版本转换为PHP版本吗?我坚持做错了/错过了。
谢谢!
答案 0 :(得分:0)
要指定输出文件的位置,您可以创建一个本地文件句柄以写出实际的文件数据,并将其存储在本地。
在上面的示例中添加以下内容...
$filename = "file.xml.gz";
$filehandle = fopen($filename, "w+");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $filehandle);
curl_close之后
fclose($filehandle);
要调试摘要身份验证,请启用写入标头。这会给您另一个文件,并返回标头。通常是未经授权的401,具有新的nonce值,然后在发送新的摘要时显示200 ok。
$headerfilename = "file.xml.gz.header";
$headerfilehandle = fopen($headerfilename, "w+");
curl_setopt($ch, CURLOPT_WRITEHEADER, $headerfilehandle);
curl_close之后
fclose($headerfilehandle);