0

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

但我的 php 脚本(确实返回其他 URI)不返回这个。或者更好的是它返回false。

这是小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 安装,现在只有示例中的一个失败。

在我的 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
4

2 回答 2

1

该 URL 是有效的,只需将 URL 放入浏览器就可以毫无问题地下载,所以这不是您的问题。

该 URL 重定向到相同的 URL,但位于安全服务器上,但您已设置 CURLOPT_FOLLOWLOCATION,因此这也不是您的问题。

但是,安全 URL 执行 javascript 重定向到英国站点,这您的问题。你拉回了错误的文件。

改用 URL 试试https://www.airbnb.co.uk/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06,看看效果如何。

于 2013-02-26T18:36:16.027 回答
0

我遇到了同样的问题,我尝试使用 curl 和 file_get_contents。我尝试了下面的方法并且它有效,我不知道它为什么有效以及它与上面的示例有何不同,但它完美地获取了 ICAL 文件。

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

函数 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 ');

于 2015-02-06T17:40:02.217 回答