2013-02-26 2 views
0

cURL을 사용하여 성공한 외부 도메인에서 일부 데이터를 가져오고 있습니다.이 URI는 ics 달력 인 http://www.airbnb.com/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06입니다. 커맨드 라인에서 성공적으로 실행할 수 있습니다 (자기를 위해 노력하십시오) : shell >> curl https://www.airbnb.com/calendar/ical/760660.ics?s=593cc556438a8f0919beb6107b6f508d, 그래서 그것은 네트워크 문제가 아닙니다.cURL이 매우 이상하게 작동합니다.

하지만 내 PHP 스크립트 (다른 ​​URI를 반환합니다) 반환하지 마십시오. 그렇지 않으면 거짓으로 돌아갑니다. 이 appfog에서 실행하고 내 옛날 XAMPP의 소 instalation으로 실행되기 때문에

여기에, 나는이 내 아파치 나 PHP를 구성 할 수있는 뭔가가 생각 하는가 작은 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); 

입니다. 다시 시작하려면 : 모든 URI가 이전 xampp 설치와 함께 작동했으며 이제는 예제의 오류 만 실패합니다.

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 
+1

어떤 오류 메시지가 표시됩니까? – hek2mgl

+0

둘 다 파일을 다운로드하는 데 유효한 도구입니다. 그들에게 무엇이 잘못된 것인지 말하지 않으면, 대안을 제시 할 수 없습니다. –

+0

데이터 또는 로그/화면에 오류가 있습니까? – hexblot

답변

1

의 URL이 유효하고 그 문제되지 않도록, 단지 브라우저에 URL을 넣어 아무런 문제가 다운로드 할 수 없습니다 : 내은 phpinfo에

() 내가 읽을 수 있습니다.

URL은 동일한 URL이지만 보안 서버에 리디렉션되지만 문제가되지 않도록 CURLOPT_FOLLOWLOCATION을 설정했습니다.

그러나 보안 URL은 영국 사이트로의 자바 스크립트 리디렉션을 수행하며이 입니다. 잘못된 파일을 다시 가져 오는 중입니다.

대신 https://www.airbnb.co.uk/calendar/ical/760186.ics?s=29623a93eb0e693c77591a711f082f06 URL을 사용해보십시오.

+0

그것도 작동하지 않았지만 나는 당신이 대답하고있는 동시에 질문을 편집하고 있었다. 내 로컬 웹 서버에서 이러한 종류의 요청을 차단하는 것처럼 보이는 단순한 apache 구성이어야합니다. 하지만 www.google.com과 같은 표준 페이지에서도 작동합니다. @jgm : 답변 해 주셔서 감사합니다. – frenesim

0

나는 동일한 문제가 있었고 curl과 file_get_contents를 사용해 보았습니다. 아래에서 시도한대로 작동하지만 왜 작동하는지, 위 예제와 어떻게 다른지 잘 모르지만 완벽하게 ICAL 파일을 가져옵니다.

URL은 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; 

}

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

관련 문제