在 PHP 中卷曲不同的版本:一个有效,另一个无效



我正在通过一个站点的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.12curl 7.29.0

不适用于 PHP 5.2.7,curl 7.34.0

你能告诉我问题出在哪里吗?您还可以为我提供其他获取网页的方法,即https和必须进行cookie操作

关于

在 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; 

Curl和PHP最近都没有发生根本性的变化。因此,您提到的版本在处理您的代码时没有问题。相反,这是许可的问题。

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

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

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

最新更新