cURL表现得很奇怪

时间:2013-02-26 17:40:32

标签: php apache curl xampp

我正在使用cURL从外部域导入一些数据,直到我尝试使用此URI:http://www.airbnb.com/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06,这是一个日历。 我可以在命令行上成功运行它(尝试自己): 壳>> curl https://www.airbnb.com/calendar/ical/760660.ics?s=593cc556438a8f0919beb6107b6f508d,所以这不是网络问题。

但我的php脚本(确实返回其他URI)不要返回此内容。或者更好,它会返回错误。

这里是小php

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$ical1= "http://www.airbnb.com/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06";
echo file_get_contents_curl($ical1);

我认为这与我的apache或php配置有关,因为它在appfog上运行,并且运行我的旧xampp安装。 要恢复:所有URI都使用旧的xampp instalation,现在只是示例中的那个失败了。

在我的phpinfo()上我可以读到:

cURL support enabled
cURL Information 7.24.0
Age 3
Features
AsynchDNS Yes
Debug No
GSS-Negotiate Yes
IDN No
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI Yes
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host i386-pc-win32
SSL Version OpenSSL/1.0.1c
ZLib Version 1.2.5
libSSH Version libssh2/1.3.0

2 个答案:

答案 0 :(得分:1)

网址有效,只需将网址放入浏览器即可免费下载,这不是您的问题。

网址重定向到同一网址,但是在安全服务器上,但您已设置了CURLOPT_FOLLOWLOCATION,这也不是您的问题。

但是,安全网址会执行javascript重定向到英国网站,而 是您的问题。你正在撤回错误的文件。

尝试使用网址https://www.airbnb.co.uk/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06,然后看看它是如何进行的。

答案 1 :(得分:0)

我遇到了同样的问题,我尝试使用curl和file_get_contents。 我尝试了下面的工作,它不起作用,我不知道为什么它工作,它与上面的例子有什么不同,但它得到了ICAL文件完美。

网址必须为https或显示空白屏幕。

function file_get_contents_curl($ url){     $ ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec($ch);
curl_close($ch);

return $data;

}

echo file_get_contents_curl('https://www.airbnb.co.uk/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06');