Предположим, у меня есть PHP-файл, подобный этому, работающий на удаленном сервере:
for ($i = 0; $i < 10; $i++)
{
ob_start();
echo "Step $i of 9<br>";
sleep(1.0);
ob_end_flush();
ob_flush();
}
Это печатает строку типа «Шаг x из 9» каждую секунду.
Теперь предположим, что я хочу вызвать этот файл с другого сервера. Я пытаюсь использовать curl и код выглядит так:
function PostData($data)
{
global $bridgeURL;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $bridgeURL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
$result = curl_exec ($ch);
curl_close ($ch);
return $result;
}
Это работает хорошо, но получает весь результат сразу.
Есть ли способ получать данные каждый раз, когда удаленный скрипт очищается? Это не должно быть завитком. Любой метод приветствуется.
Заранее спасибо.
Включите ваш файл функций (скажем, functions.php) в ваш файл curl (скажем, curl.php). Затем просто вызовите свою функцию из вашего цикла.
include 'functions.php;`
for ($i = 0; $i < 10; $i++)
{
ob_start();
$post_data = PostData($data); //assume $data is define somewhere else
echo "Step $i of 9<br>";
sleep(1.0);
ob_end_flush();
ob_flush();
}
Других решений пока нет …