我正在构建一个应用程序,它在某一时刻会从外部 URL 卷曲一些内容。到目前为止,这总是很快/立即完成。但是,我不确定如果外部服务器需要很长时间才能响应会发生什么。PHP 会等待执行以下代码直到 cURL 完成吗?
我无法真正测试它,因为我不知道如何“模拟”较慢的响应。我希望这个伪代码能清楚地说明我的问题:
$ch = curl_init( $some_remote_url );
$fp = fopen( $some_local_file, 'wb' );
curl_setopt( $ch, CURLOPT_FILE, $fp );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_exec( $ch ); // Let's say this takes 20 seconds until the other server responds
curl_close( $ch );
fclose( $fp );
redirect( $some_other_url ); // Will this be executed instantly or only after 20 seconds?
我对此感到疑惑的原因是,如果远程服务器响应缓慢,我不希望我的用户查看“加载”页面 20 秒,因此我可能不得不将整个过程移至 cron 作业. 用户不需要立即卷曲的结果,因此该过程何时结束对他来说并不重要。