我正在通过一个站点的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, curl 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地址,用户代理等)使用相同的会话标识符。