问题标签 [curl-multi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
67124 浏览

php - PHP 多个 curl 请求

我目前经常使用 Curl for PHP。每次获得大约 100 页的结果需要花费大量时间。对于每个请求,我都使用这样的代码

我有哪些加快速度的选择?

我应该如何使用multi_init()等?

0 投票
2 回答
1378 浏览

php - PHP multi curl - 找出用于特定 curl 句柄的代理

我正在使用带有匿名代理的多重卷曲,并且我想在返回卷曲句柄后根据性能和位置等标记代理。我已经尝试过 curl_getinfo() ,但它没有返回有关用于该 curl 句柄的代理的信息。

有任何想法吗?我已经考虑过一种方法来识别特定句柄并将其与使用的代理一起存储,然后当句柄触发并通过 curl_multi_info_read() 返回时,我可以通过代理查找句柄。虽然不确定使用什么作为标识符。进行转储将句柄显示为资源(20),但不确定这是否是我可以依赖的?

我想如果有类似 getOpt() 的东西会是理想的,但我从我所做的研究中看不到任何类似的卷曲手柄。

0 投票
1 回答
1484 浏览

php - 使用 Multi-Curl 进行链接检查

我正在构建一个链接检查器功能,用于检查链接是否具有代码 200/301/302。

我想检查大约 1000 个链接,所以我使用了 Multi-CURL 功能,我确实得到了所有标题、代码、URL 重定向到的 URL。

问题是 Multi-CURL 并行执行,将所有 URL 添加到 curl_multi_add_handle 并返回它获得的结果并忽略其余部分。

我从标题中知道我得到了哪个结果,但我不知道是哪个 URL 带来的。是否存在我针对特定执行句柄请求的 URL 的标识符(可能与 curl_multi_info_read 有关)?

这是我的代码:

感谢Help.Thanx。

0 投票
2 回答
539 浏览

php - 如何重构此 cURL 脚本以利用 PHP 的 curl_multi 函数?

我在我的 PHP 应用程序中使用 cURL 连接到 RESTful API。但是,我最近才发现我没有并行化我的 cURL 连接,因此执行几个连续的连接会导致最终用户出现极端延迟。

我以前没有使用curl_multi过,在阅读文档后我有点不知所措。如何最好地重构以下代码以利用curl_multi的并行化?

编辑:我忘了提到我开源了这里使用的 API。这些是我自己的Directed Edge PHP 绑定。因此,如果您愿意,也可以将您的帮助合并到 GitHub 上的代码中,您将被列为贡献者。

这是我在客户端代码中所做的示例:

以下是相关功能DirectedEdgeRest()

0 投票
1 回答
811 浏览

php - 我对 curl_multi() 的使用仍然是串行的吗?如果是这样,我该如何并行化?

我今天从某人那里得到一个提示,我的curl_multi()代码实际上是串行工作的,而我希望并行化 cURL 请求。

我的代码仍然是串行的吗?如果是这样,我该如何并行化?

以下是相关代码:

0 投票
2 回答
950 浏览

php - 快速记录请求

我正在尝试测试创建 48 个 cURL 多句柄的 PHP 脚本,每个句柄包含大约 1500 个请求,全部并行执行。我试图确保所有请求都被实际发送,为此,我将请求记录在我的服务器上。这是我的 dump.php,我用我的脚本向它发出请求,它会将请求记录到一个文件中:

但是,我的四核 PC 能够以每 10 秒约 1500 次的速率触发这些请求存在一个小问题,并且很可能在尝试同时打开文件时使我的服务器超载。我在发送每个请求之间延迟了 0.1 秒,但我认为我的服务器仍然无法打开文件、转储文本并在下一个请求到达之前关闭它。结果,我的 PHP 文件说发送了大约 72k 的请求,但我的服务器说只收到了大约 14k。这可能是由于我的 PHP 程序使我的 PC 或端口系统过载,并且某些请求从未成功发送,或者我的服务器速度不够快,无法每秒处理 150 个请求。

尝试安全地知道我的所有请求都已发送的任何可能的解决方案?当我的客户使用该脚本时,必须至少实际发送 99.5% 的请求,并且他的服务器足够强大,可以毫无问题地处理这些请求。出于安全原因,我无法在他的服务器上对其进行测试,但我的功能不足以让我模拟工作条件。

0 投票
1 回答
454 浏览

php - 爆炸数组并为数组中的每一位数据添加执行时间戳?

使用 curl_multi,我加载了 3 个 url,然后打印了数组。

1)如何在输出上设置时间戳,让我知道每个 url 的运行时间?

2) 如何分解数组以仅显示数据和时间戳,不包括文本“数组([0] =>”、“[1] =>”、“[2] =>”和“)”?

代码

输出

首选输出

0 投票
1 回答
4788 浏览

php - php多curl多get请求,多post请求

我需要向生成随机数的特定网页发出多个 GET 请求,然后使用该特定数字发出多个 POST 请求。到目前为止,我有这个代码:functions.php

并发送.php

但是由于某些原因,我得到了这个错误而不是预期的结果

“0”字段数组不会像“1”那样返回“完成”响应。

0 投票
2 回答
872 浏览

php - 收到 PHP curl_multi_getcontent 部分正文

我正在努力解决这个问题。

我要取的正文不是很大,3100 个字符。服务器上的 Apache 日志显示内容长度为 3100。但是,curl_multi_getcontent 返回的字符串被剪切为 1290 个字符。

通常 curl_multi_getcontent() 工作正常,但有时我们会遇到这种奇怪的行为。

有任何想法吗?

0 投票
2 回答
3403 浏览

php - PHP curl_multi_exec 运行一次

我无法使用 php 的 curl_multi_exec 创建多个 xml 请求。

问题是包含 curl_multi_exec 命令的 do...while 循环只运行一次然后退出。

使用的资源:

http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/ http://php.net/manual/en/function.curl-multi-exec.php/ http:// www.rustyrazorblade.com/2008/02/curl_multi_exec/

看看我的代码:

我知道请求是有效的,因为我在执行单次 curl 执行时收到了正确的返回数据。问题在于 curl_multi_exec()。

我收到的输出是“运行一次”,后跟 curl_multi_getcontent() 调用的空数组。见下文:

跑一次数组( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => )

任何帮助是极大的赞赏。