У меня есть файл PHP, который вызывает другой файл PHP через curl. Я пытаюсь, чтобы второй файл отправлял ответ обратно первому, чтобы он знал, что он начался. Проблема в том, что первый не может дождаться, когда первый закончит выполнение, потому что это может занять минуту или больше, мне нужно, чтобы он немедленно отправил ответ, а затем занялся обычным делом. Я попытался использовать эхо в верхней части второго файла, но первый не получил это как ответ.
Как мне отправить ответ без завершения выполнения?
file1.php
<?php
$url = 'file2.php';
$params = array('data'=>$data,'moredata'=>$moredata);
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_TIMEOUT => 10, // don't wait too long
CURLOPT_POST => true, // Use Method POST (not GET)
CURLOPT_POSTFIELDS => http_build_query($params)
);
$ch = curl_init($url);
curl_setopt_array( $ch, $options );
$response = curl_exec($ch); // See that the page started.
curl_close($ch);
echo 'Response: ' . $response;
?>
file2.php
<?php
/* This is the top of the file. */
echo 'I started.';
.
.
.
// Other CODE
.
.
.
?>
Когда я запускаю file1.php, это приводит к: «Response:», но я ожидаю, что это будет «Response: я начал». Я знаю, что file2.php запускается, потому что запускается 'Other CODE', но эхо не отправляется обратно в file1.php, почему?