gpt4 book ai didi

php - 使用 cURL 句柄作为数组键

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:20 24 4
gpt4 key购买 nike

我正在使用 curl_multi 函数来请求多个 URL 并在它们完成时对其进行处理。当一个连接完成时,我真正拥有的是来自 curl_multi_info_read() 的 cURL 句柄(和相关数据)。

URL 来自作业队列,处理后我需要从队列中删除该作业。我不想依赖 URL 来识别作业(不应该 是重复的 URL,但如果 怎么办)。

到目前为止,我采用的解决方案是使用 cURL 句柄作为指向 jobid 的数组键。据我所知,当被视为字符串时,句柄类似于:

"Resource id #1"

这种接缝对我来说相当独特。基本代码是:

$ch = curl_init($job->getUrl());
$handles[$ch] = $job;
//then later
$done = curl_multi_info_read($master);
$handles[$done['handle']]->delete();
curl_multi_remove_handle($master, $done['handle']);

以这种方式使用 cURL 句柄是否安全?

或者是否有更好的方法将 cURL 句柄映射到创建它们的作业?

最佳答案

将私有(private)数据存储在 cURL easy handle 中,例如一些工作ID:

curl_setopt($ch, CURLOPT_PRIVATE, $job->getId());
// then later
$id = curl_getinfo($done['handle'], CURLINFO_PRIVATE);

此“私有(private)数据”功能(尚未)在 PHP 手册中记录。它已在 PHP 5.2.4 中引入。它允许您在 cURL 句柄中存储和检索您选择的字符串。将其用作唯一标识作业的键。

编辑:功能现在是documented在 PHP 手册中(在页面中搜索 CURLOPT_PRIVATE)。

关于php - 使用 cURL 句柄作为数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com