PHP: http get/post по -настоящему асинхронноPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP: http get/post по -настоящему асинхронно

Сообщение Anonymous »

По сути, я ищу способ сделать следующее в PHP: < /p>

Код: Выделить всё

http_get_or_post('an.url', 'or.two');

// Do some work here, not worrying about the http going on in the background.

$r = wait_for_and_get_the_results_of_the_http_requests()
И, возможно, кто-то с большим опытом сгиба может подтвердить, что curl_multi-это то, что я ищу.$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch1);

$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

// Now, am I free to do some time consuming work here and not worry about
// calling curl_multi_exec every now and then to facilitate the background
// http / socket processes?

while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}

curl_multi_remove_handle($mh, $ch1);
curl_multi_close($mh);
< /code>

Теперь основной вопрос: мое понимание того, что это сделает правильно? Другие вещи без необходимости периодически вызывают curl_multi_exec, чтобы убедиться, что какой -то буфер не заполнен где -то, и нуждается в ударе, чтобы продолжать идти. Письмо буфера заполнены, но в моем сценарии это не проблема, я беспокоюсь только о том, чтобы называть curl_multi_exec, пока я делаю другие вещи в середине, просто так, что все это не замораживает до следующего шанса, что я назову Curl_multi_exec. Ничего в фоновом режиме, пока я не доберусь до второго цикла. Если нет, то, что вы можете предложить, это сделает это в php?

Подробнее здесь: https://stackoverflow.com/questions/183 ... nc-fashion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»