在PHP中使用不同版本的卷曲:一个是工作,另一个不是

时间:2014-02-28 13:01:31

标签: php curl

我从一个网站通过 curl 获取网页。问题是,在一台计算机上它可以工作,而在另一台计算机中它不起作用。这是代码:

    $ch = curl_init('https://emea2cps.adobeconnect.com/api/xml?action=login&login=myUser&password=myPassword');
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSLVERSION,3);
    curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__.'/cookies');
    curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__.'/cookies');
    curl_exec($ch);
    $info= curl_getinfo($ch);
    curl_close($ch);

    $ch1 = curl_init('https://meet77842937.adobeconnect.com/api/xml?action=report-my-meetings');
    curl_setopt($ch1,CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch1,CURLOPT_RETURNTRANSFER,TRUE);
    curl_setopt($ch1, CURLOPT_SSLVERSION,3);
    curl_setopt($ch1, CURLOPT_COOKIEFILE, __DIR__.'/cookies');
    curl_setopt($ch1, CURLOPT_COOKIEJAR, __DIR__.'/cookies');
    $data = curl_exec($ch1);
    $info1= curl_getinfo($ch1);
    curl_close($ch1);
PHP 5.4.12 卷曲7.29.0

工作 PHP 5.2.7 Curl 7.34.0

<无效 你能告诉我问题出在哪里吗?而且你还能为我提供其他获取网页的方式,即https和cookie操作必须完成

关于

3 个答案:

答案 0 :(得分:0)

使用PHP 5.5.5,Curl 7.33.0。我认为您的代码没有任何问题。以下是否正确执行?

function _is_curl_installed() {
  if  (in_array('curl', get_loaded_extensions())) {
    return true;
  } else {
    return false;
  }
}

echo 'cURL is <b>'.(_is_curl_installed() ? 'installed' : 'not installed').'</b> on this server'.PHP_EOL; 

答案 1 :(得分:0)

Curl和PHP最近都没有彻底改变。所以你提到的版本没有问题来处理你的代码。而是它的许可问题。

从您的php代码中打印出来:__DIR__.'/cookies'

并检查您的apache是​​否对两台服务器(特别是在它不起作用的地方)具有写入权限!

答案 2 :(得分:0)

也许网站有一些安全措施可以阻止使用相同会话标识符的其他计算机(基于IP地址,用户代理等)。