계속하기 전에 PHP가 컬이 끝나기를 기다리려면 어떻게해야합니까?
문제
내가 같은 일을한다면
$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));
한 단계로 모든 것을 수행하면 문제가 해결 될 수 있습니다.
제휴하지 않습니다 StackOverflow