问题标签 [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.
php - 使用 PHP curl_multi 的异步/并行 HTTP 请求
我最近研究了使用 curl 发出多个请求的可能性。我可能没有完全理解它,所以我只是希望澄清一些概念。
如果您要从多个来源获取内容,这绝对是一个不错的选择。这样,您可以在等待较慢服务器的同时开始处理来自较快服务器的结果。如果您从同一服务器请求多个页面,使用它是否仍然有意义?服务器是否仍会同时为同一个客户端提供多个页面?
php - PHP中有shell_exec和proc_open的替代品吗?
似乎我无法使用shell_exec
或proc_open
在我的共享服务器上。
我尝试使用它时收到的消息是:
警告:shell_exec() 出于安全原因在第 4 行的 /home/georgee/public_html/admin/email.php 中被禁用
这些功能有替代品吗?
php - 更快的替代 file_get_contents()
目前我正在使用 file_get_contents() 将 GET 数据提交到站点数组,但是在执行页面时出现此错误:
致命错误:超过 30 秒的最大执行时间
我真正想要脚本做的就是开始加载网页,然后离开。每个网页最多可能需要 5 分钟才能完全加载,我不需要它来完全加载。
这是我目前拥有的:
编辑:为了消除任何混乱,这个脚本被用来在其他服务器上启动脚本,不返回任何数据。
编辑:我现在正在尝试使用 cURL 来解决问题,方法是设置一秒的超时时间以使其发送数据然后停止。这是我的代码:
也许我把选项设置错了。我们说话的时候,我正在浏览一些手册。只是给你一个更新。谢谢你们到目前为止一直在帮助我。
编辑:啊,发现了问题。我使用的是 CURLOPT_CONNECTTIMEOUT 而不是 CURLOPT_TIMEOUT。哎呀。
但是现在,脚本没有触发。他们每个人都使用 ignore_user_abort(TRUE); 所以我无法理解这个问题
哈,刮一下。现在工作。非常感谢大家
php - 如何使用 cURL 通过 PHP 同时打开多个 URL?
这是我当前的代码:
我对 cURL 比较陌生。相对较新,我的意思是这是我第一次使用 cURL。目前它加载一个两秒,然后加载下一个 2 秒,然后下一个。但是,我想让它同时加载所有这些。我确定它可能,我只是不确定如何。如果有人能指出我正确的方向,我将不胜感激。
php - 如何使用 cURL 同时将 GET 数据发送到多个 URL?
抱歉,我实际上多次问过这个问题,但从未完全理解答案。
这是我当前的代码:
我在这里所做的是从 MySQL 数据库 ($resultSet['url']) 中获取 URL,向其中附加一些额外的变量,只是一些 GET 数据 ($fullcurl),然后简单地请求页面。这将启动在这些页面上运行的脚本,这就是该脚本需要做的所有事情,就是启动这些脚本。它不需要返回任何输出。只需加载足够长的页面以启动脚本即可。
但是,目前它一次加载每个 URL(当前为 11 个)。我需要同时加载所有这些。我知道我需要使用 curl_multi_ ,但我对 cURL 函数的工作原理一无所知,所以我不知道如何更改我的代码以在 while 循环中使用 curl_multi_ 。
所以我的问题是:
如何更改此代码以同时加载所有 URL?请解释一下,而不仅仅是给我代码。我想知道每个单独的功能到底是做什么的。curl_multi_exec 甚至可以在 while 循环中工作,因为 while 循环一次只发送每一行?
当然,任何关于 cURL 函数的参考资料、指南和教程也会很好。最好不要太多来自 php.net,因为虽然它在给我语法方面做得很好,但它只是有点枯燥,而且解释不太好。
编辑:好的zaf,这是我目前的代码:
php - 如果一个 url 是 404,curl_multi_exec 停止,我该如何更改?
目前,如果我的 cURL multi exec 连接到的一个 url 不起作用,它就会停止,所以有几个问题:
1:为什么会停止?这对我来说没有意义。
2:我怎样才能让它继续?
编辑:这是我的代码:
ruby-on-rails - 多个 HTTP 请求 - Rails
我的应用程序会检查多个域以查看它们是否有效(大约 100 个)。我有以下代码来检查单个域:
该代码在考虑重定向的同时检查响应代码。这工作正常。我唯一的问题是当我把它放在一个循环中时,我希望它并行运行。因此,我不必等待域 1 响应就可以请求域 2。
我已经在 PHP 中使用 curl_multi 来并行运行请求。我可以在 Rails 中做类似的事情吗?
php - 在 php 中抓取大量页面的最快方法是什么?
我有一个数据聚合器,它依赖于抓取多个站点,并以用户可搜索的方式索引它们的信息。
我需要能够每天抓取大量页面,并且我在使用简单的 curl 请求时遇到了问题,这些请求在长时间快速执行时相当慢(抓取器基本上 24/7 运行)。
在简单的 while 循环中运行多卷曲请求相当慢。我通过在后台进程中执行单独的 curl 请求来加速它,它运行得更快,但迟早较慢的请求开始堆积,最终导致服务器崩溃。
是否有更有效的数据抓取方式?也许命令行卷曲?
php - curl_multi_exec 必须调用多少次?
我正在使用 curl_multi 和 multi 将文件上传到不同的服务器。每台服务器都有多个需要上传的文件,所以我对每台服务器都有一个 curl_multi 请求。当我执行 curl_multi 句柄时,我只是在同一个循环中执行所有 curl_multi 句柄,如下所示:
我想知道的是, curl_multi_exec 实际上必须在 curl 请求中调用多少次?是否需要为传输的每一点数据调用它?它使用了大量的 cpu,我认为这是因为它的“忙循环”太多了。那么我可以添加 sleep(5); 在每个循环结束时使其使用更少的 cpu 周期,或者这会大大减慢请求吗?
我会使用 curl_multi_select,但我不能,因为正在处理多个 curl_multi_execs。
php - PHP - 如何检查 404/超时的 URL?
这是我的结构:
MYSQL:表:玩具--->列:id,URL。如何让我的 PHP 脚本检查所有这些 URL 以查看它们是否存在或有 404 页?尽量不要在页面上回显或显示结果。我需要在 MYSQL 中记录一个额外的“检查”列。
结果将采用以下格式:
http://asdasd.adas --- 向上 --- 404
如果可能,它将在 PHP/Curl 中。我已经尝试了很多年。我放弃了,所以决定在这里问。
URL 都位于我的数据库中。