<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分与文章内容无关,可以是初始化或者其他设置</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"初始化 PHP 环境...\n"</span></span><span>;
</span><span><span class="hljs-variable">$version</span></span><span> = </span><span><span class="hljs-title function_ invoke__">phpversion</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前 PHP 版本: <span class="hljs-subst">$version</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 文章正文开始</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>详解 curl_multi_add_handle 添加句柄后,如何正确执行请求并处理返回结果?</h1>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>在 PHP 中,使用 <code>cURL
';
echo "然后,初始化一个多句柄管理器 curl_multi_init():
"; echo '<span class="fun">$mh = curl_multi_init();</span>'; echo "
使用 curl_multi_add_handle() 将每个单句柄加入管理器:
"; echo 'curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
';
echo "添加完成后,需要循环执行 curl_multi_exec() 直到所有请求完成:
"; echo '$running = null;
do {
$status = curl_multi_exec($mh, $running);
// 可选: 等待文件描述符变化,减少 CPU 占用
curl_multi_select($mh);
} while ($running > 0);
';
echo "请求完成后,可以使用 curl_multi_getcontent() 获取每个句柄的返回内容:
"; echo '$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
echo "Response 1: " . $response1 . "\n";
echo "Response 2: " . $response2 . "\n";
';
echo "最后,必须清理资源,先从多句柄管理器移除,再关闭单句柄和多句柄:
"; echo 'curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch1);
curl_close($ch2);
curl_multi_close($mh);
';
echo "使用 curl_multi_add_handle 后,正确执行并获取结果的关键步骤是:
"; echo "掌握这些步骤,你就可以高效地进行并发 HTTP 请求,同时保证返回数据被正确处理。
"; ?>