如何将此cURL命令转换为PHP?

时间:2016-07-17 23:48:51

标签: php curl cookies ssh

我目前在终端中使用的SSH命令是:

curl -L -b cookies.txt http://www.dropbox.com/s/8lu0nutt4tgpkku/jbtools.ipa -o iOS9_beta.ipsw

我首先登录我的开发者帐户,然后通过Chrome扩展程序下载Cookie;然后,我将cookies.txt文件上传到我运行SSH命令的相同路径,并轻松地将文件镜像到我的服务器。 现在,我想用PHP脚本做同样的工作。我尝试了这段代码,但没有用。

<?php
$cSession = curl_init(); 
curl_setopt($cSession,CURLOPT_URL,"http://www.dropbox.com/s/8lu0nutt4tgpkku/jbtools.ipa");
curl_setopt($cSession, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($cSession, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
curl_setopt($cSession,CURLOPT_HEADER, false); 
$result=curl_exec($cSession);
curl_close($cSession);
echo $result;
?>

非常感谢任何帮助/想法

更新: 我将代码更新为以下代码,但是:

  1. 如果我使用CURLOPT_USERPWD选项,虽然我定义了正确的用户和传递
  2. 但我获得了“需要401授权”
  3. 如果我使用CURLOPT_COOKIEFILE选项,我会收到“403 Forbidden”,虽然cookies.txt没有过期!
  4. The live Link

    $cSession = curl_init(); 
    curl_setopt($cSession,CURLOPT_URL,"http://adcdownload.apple.com/Safari/Safari_10_for_OS_X_El_Capitan_and_Yosemite_beta_5/Safari_10_for_OS_X_El_Capitan_beta_5.dmg");
    curl_setopt($cSession, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($cSession, CURLOPT_USERPWD, "MyUser:MyPass");
    // curl_setopt($cSession, CURLOPT_COOKIEJAR, 'cookies.txt');
    //curl_setopt($cSession, CURLOPT_COOKIEFILE, 'cookies.txt');
    curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($cSession,CURLOPT_HEADER, false); 
    $result=curl_exec($cSession);
    curl_close($cSession);
    echo $result;
    

1 个答案:

答案 0 :(得分:0)

让我们来看看你的卷发中是否遗漏了什么。

-L =关注重定向

curl_setopt($cSession, CURLOPT_FOLLOWLOCATION, true);

请参阅: http://php.net/manual/en/function.curl-setopt.php