계속하기 전에 PHP가 컬이 끝나기를 기다리려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/267236

  •  06-07-2019
  •  | 
  •  

문제

내가 같은 일을한다면

$file = fopen($filepath, "w");
$CR = curl_init();
curl_setopt($CR, CURLOPT_URL, $source_path);
curl_setopt($CR, CURLOPT_POST, 1);
curl_setopt($CR, CURLOPT_FAILONERROR, true);
curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($CR, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($CR, CURLOPT_FILE, $file);
$result = curl_exec( $CR );
$error = curl_error( $CR );
print filesize($filepath);

방금 달리는 것과는 다른 결과를 얻습니다.

print filesize($filepath);

두 번째. 내 생각에 Curl은 Filesize ()를 수행 할 때 여전히 다운로드하고 있다고 생각합니다.

도움이 되었습니까?

해결책

filesize ()와 같은 함수 결과 결과 결과는 결과를 care으로, 위의 'print filesize (...);'위의 CLEARSTATCACHE ()에 호출을 추가하십시오. 예는 다음과 같습니다.

$file = '/tmp/test12345';
file_put_contents($file, 'hello');
echo filesize($file), "\n";
file_put_contents($file, 'hello world, this is a test');
echo filesize($file), "\n";
clearstatcache();
echo filesize($file), "\n";

www.php.net/clearstatcache를 참조하십시오

다른 팁

글쎄, 나는 같은 문제가있다. 컬은 동기식이어야하지만 사용 방법에 따라 동기가 아닙니다.
컬, 인쇄 또는 에코 후 전화하면 내용이 무효화됩니다. 이상한 지연이 있습니다. 그러나 나는이 접근법을 시도 할 것이다 -

print_r(curls_getinfo($CR));

한 단계로 모든 것을 수행하면 문제가 해결 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top