关于PHP的curl_multi*的相关应用问题
先看一段代码,摘自PHP手册curl_multi_select
测试时,while ($active && $mrc == CURLM_OK) 这个地方是个死循环啊。$active打印为2,$mrc为0,CURLM_OK这个常的值为0.
这段代码中,第一个do-while与第二个do-while有什么区别呢,不懂得这意思。
希望写下几个循环处表示什么意思,谢谢。
<?php
// 创建一对cURL资源
$ch1 = curl_init();
$ch2 = curl_init();
// 设置URL和相应的选项
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// 创建批处理cURL句柄
$mh = curl_multi_init();
// 增加2个句柄
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$active = null;
// 执行批处理句柄
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
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_remove_handle($mh, $ch2);
curl_multi_close($mh);
测试时,while ($active && $mrc == CURLM_OK) 这个地方是个死循环啊。$active打印为2,$mrc为0,CURLM_OK这个常的值为0.
这段代码中,第一个do-while与第二个do-while有什么区别呢,不懂得这意思。
希望写下几个循环处表示什么意思,谢谢。
...全文
相关推荐
PHP技巧PHPCURL函数库.doc
PHP CURL 函数库详解PHP CURL 函数库是 PHP 编程语言中的一种功能强大且广泛应用的函数库,用于处理 HTTP 请求和响应。
php curl批处理实现可控并发异步操作示例
为了解决这个问题,cURL提供了`curl_multi_*`系列函数,使得开发者可以实现并发的异步操作,从而显著提升批处理任务的执行速度。
PHP curl伪造IP地址和header信息代码实例
cURL还提供了一个多接口(`curl_multi_*`函数),用于并发处理多个请求,提高效率。
Laravel开发-extra-curl
**异步请求**:Curl支持非阻塞的异步请求,通过`curl_multi_*`函数实现。在Laravel中,这可以帮助优化性能,尤其是在需要发送大量并发请求时。7.
php qvod 资源下载器
**多线程/异步下载**:为了加快下载速度,下载器可能使用PHP的多进程或多线程功能,或者利用curl_multi_*函数实现并发请求,实现资源的并行下载。7.


基础编程
