0
웹 페이지의 콘텐츠를 다운로드하는 코드 샘플이 있습니다.PHP curl이 URL에서 빈 파일을 다운로드합니다.
문제 : 0 길이 파일은 항상 하드 디스크에 나타납니다.
나는이 코드가 많은 경우에 잘 작동한다고 생각하지만, 광산의 경우에이 코드를 수정하는 방법을 알고 흥미 롭습니다.
<?php
$url = 'https://wtfismyip.com/text';
$destFile = 'experiment.tmp';
$fp = fopen($destFile, 'w+b');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
다른 URL을 사용해 보았습니다. fopen
+ fread
을 통한 또 다른 접근 방식이 정상적으로 작동합니다.
- 윈도우 7
- PHP 7.1.0 (CLI) (내장 : 2016년 12월 2일 5시 24분 57초) (ZTS MSVC14 (비주얼 C++ 2015) 64)
- 그냥
php example.php
전송 후 HTTP 상태 코드를 가져올 수 있습니까? 'curl_getinfo ($ ch, CURLINFO_HTTP_CODE); ' – BradzTech
'CURLOPT_BINARYTRANSFER'는 중복되어 있지만, 그 줄을 제거해도 차이는 없을 것입니다. 왜 'curl_exec()'에 의해 리턴 된 값을 검사하지 않습니까? –