问题标签 [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 投票
2 回答
2472 浏览

php - PHP Codeigniter curl_multi_init 错误

这是我的代码:

我明白了Fatal error: Call to undefined function curl_multi_init() in /var/www/application/libraries/facebook.php on line 123

这是在我的本地机器上运行的......这可能是个问题吗?我不明白。

0 投票
1 回答
1884 浏览

php - 如何在php中同步多个curl_multi请求?

我想使用 curl_multi 来执行一些异步请求,但我想同时进行一组请求,因为当请求的响应满足我的需求时,我打算停止所有请求。这是我的代码:

这是带有 curl_multi 代码的 getOfertas() 中的函数

0 投票
0 回答
795 浏览

php - curl_multi_init 为每个句柄使用不同的代理?

我想编写一个脚本,curl_multi_init()但我必须curl_setopt()只用我的代理指定一次,而不是为每个句柄指定,有没有一种方法可以为每个句柄使用不同的代理来解决这个问题?


我得到了解决方案,使用新的指定您想要的代理,curl_init()然后添加一个新的句柄。

等等。

0 投票
1 回答
537 浏览

php - PHP 多卷曲 - 在多卷曲运行时获取内容

我正在设计一个带有多卷曲的简单抓取解析器。我看过很多例子,但有一个小问题。解析器正在等待最慢的响应,然后开始解析。

在多卷曲仍在运行时,是否有一些很酷的方法可以开始解析?因为如果最慢的请求是 10 秒,那么整个脚本将等待 10 秒,然后开始解析源。

谢谢尼克

0 投票
0 回答
1921 浏览

php - 进度功能和 CURL 多

我有这段代码,其中有一个远程文件列表(例如图像),可以使用 multi curl 下载:

问题是我想制作某种进度条,所以 php 应该给我有关下载进度的信息。例如,我希望有一个计数器,每次文件下载完成时都会增加一个(然后很容易在 .txt 文件上写这个计数器并使用 ajax 每 n 秒检索一次,以了解有多少文件直到那一刻才被下载)。为此,我附加了函数“curl_progress_callback”,但我不知道在里面放什么来做我想做的事......

编辑:最后我设法用一个小功能实现了这一点

但是,如果有人知道更好的解决方案,我将不胜感激...

0 投票
4 回答
8482 浏览

php - 请求之间的 PHP cURL multi_exec 延迟

如果我运行一个标准的 cURL_multi_exec 函数(下面的示例),我会立即获得所有请求的 cURL 句柄。我想在每个请求之间延迟 100 毫秒,有没有办法做到这一点?(在 Google 和 StackOverflow 搜索中没有找到)

我在 curl_multi_exec() 之前尝试过 usleep() ,它会减慢脚本但不会推迟每个请求。

我整天都在为此工作,任何帮助将不胜感激!谢谢你。

编辑:任何其他非 cUrl 方法?这也将回答我的问题。

0 投票
1 回答
586 浏览

php - PHP CURL_Multi 检查已完成句柄的状态、删除、添加、超时

所以我正在处理多达 3000 个链接,我正在使用 curl_multi 来加快处理速度。我一次使用 20 个简单的过程,等待所有 20 个完成,再处理 20 个类型的方法,但我知道这是低效的,特别是如果这 20 个链接中的一个需要永远下载。因此,我需要知道如何在从该 url 获取内容后立即通过添加/删除句柄来编写一个遍历所有 3000 个链接的循环。

我正在使用其中一些基础知识:

我需要能够:

1)检查句柄何时完成,并知道该句柄属于我的多维数组中的哪个url

2) 检索该句柄的内容并根据该句柄的内容是否属于$allurls[0][0],$allurls[0][1], 或$allurls[0][2](每个进程的不同进程)分配一个进程

3) 删除该句柄并添加另一个 URL,$allurls直到处理完所有链接

4)在任何花费超过一定时间的URL上处理手动超时,比如2分钟(因为CURLOPT_CONNECTTIMEOUTCURLOPT_TIMEOUT在curl_multi环境中无法正常工作(或者至少这是我基于http的经验和理解: //curl.haxx.se/mail/curlphp-2008-06/0006.html )),但我还需要知道$allurls该 URL 是否超时...

我知道这似乎有点工作,但对于知道这一点的人来说,它不应该做那么多工作......我只是不知道如何做的细节......谢谢。

0 投票
1 回答
332 浏览

php - PHP curl_multi removing and closing lingering handles

I have a loop that goes through approximately 3k urls using curl_multi and I need to know of away to remove any remaining handles from curl_multi to make sure I'm not wasting resources... is there any way to do it, or do I have to go though each of the 3k handles and remove them and then close them? What if they are already removed and closed?

I use a manual timeout at the end which accounts for cURL_multi's inability to timeout on the CURLOPT_CONNECTTIMEOUT / CURLOPT_TIMEOUT options and there may be lingering URL handles that are still 'trying' to get data.

I don't mind doing a foreach() loop, but how do I check to see if a handle has already been removed, if I try to remove it won't it cause a 'this is not set' type of error? Does removing a curl handle actually unset() that variable, i.e. I can run a isset() test on it?

0 投票
2 回答
1945 浏览

php - cURL multi 打开的套接字太多

我正在使用 cURL multi 从某些网站获取数据。带代码:

但是,我的问题是 cURL 打开了太多套接字以连接到网络服务器。每个连接,cURL 都会为 web 服务器创建新的套接字。我希望当前连接保持活动状态以进行下一个连接。我不想要 100 个 URL,然后 cURL 必须创建 100 个套接字来处理:(

请帮我。非常感谢 !

0 投票
1 回答
793 浏览

php - CURL同时测试一个url的多个ip地址:响应问题

我正在对 URL 发出 curl 请求。此 URL 由许多服务器托管 ==> 许多 IP 地址。想象一下“www.example.com”由

  • 192.168.60.31
  • 198.166.15.15
  • 217.15.74.1

这是我做的测试:

这里的问题是,当我将信息可视化时,我得到了这个:

如您所见:在某些服务器中,我不获取时间信息(一切都设置为 0)此代码有什么问题吗?