如何使用 cURL 同时向多个 URL 发送 GET 数据?

2023-12-22

抱歉,我实际上多次问过这个问题,但从未完全理解答案。

这是我当前的代码:

while($resultSet = mysql_fetch_array($SQL)){            
$ch = curl_init($resultSet['url'] . $fullcurl); //load the urls and send GET data
            curl_setopt($ch, CURLOPT_TIMEOUT, 2);           //Only load it for two seconds (Long enough to send the data)
            curl_exec($ch);                                 //Execute the cURL
            curl_close($ch);                                //Close it off 
} //end while loop

我在这里所做的,是从 MySQL 数据库 ($resultSet['url']) 获取 URL,向其附加一些额外的变量,只是一些 GET 数据 ($fullcurl),然后简单地请求页面。这将启动在这些页面上运行的脚本,该脚本所需要做的就是启动这些脚本。它不需要返回任何输出。只需加载页面足够长的时间即可启动脚本。

然而,目前它一次加载每个 URL(当前为 11 个)。我需要同时加载所有这些。我知道我需要使用curl_multi_,但我对 cURL 函数如何工作一无所知,所以我不知道如何更改我的代码以使用curl_multi_在 while 循环中。

所以我的问题是:

如何更改此代码以同时加载所有 URL?请解释一下,而不仅仅是给我代码。我想知道每个单独的函数到底做什么。由于 while 循环只是一次发送每一行,curl_multi_exec 甚至可以在 while 循环中工作吗?

当然,任何有关 cURL 函数的参考、指南和教程也很好。最好不要太多来自 php.net,因为虽然它很好地为我提供了语法,但它只是一个little干燥而且解释不太好。

EDIT:好的,zaf,这是我目前的代码:

        $mh = curl_multi_init(); //set up a cURL multiple execution handle

$SQL = mysql_query("SELECT url FROM urls") or die(mysql_error()); //Query the shell table
                    while($resultSet = mysql_fetch_array($SQL)){   

        $ch = curl_init($resultSet['url'] . $fullcurl); //load the urls and send GET data
        curl_setopt($ch, CURLOPT_TIMEOUT, 2);           //Only load it for two seconds (Long enough to send the data)
        curl_multi_add_handle($mh, $ch);
    } //No more shells, close the while loop

        curl_multi_exec($mh);                           //Execute the multi execution
        curl_multi_close($mh);                          //Close it when it's finished.

在 while 循环中,您需要对每个 URL 执行以下操作:

  • 使用curl_init()创建curl资源
  • 通过curl_setopt(..) 设置资源选项

然后,您需要使用curl_multi_init()创建多个curl句柄,并使用curl_multi_add_handle(...)添加所有先前的单独curl资源

最后你可以执行curl_multi_exec(...)。

一个很好的例子可以在这里找到:http://us.php.net/manual/en/function.curl-multi-exec.php http://us.php.net/manual/en/function.curl-multi-exec.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 cURL 同时向多个 URL 发送 GET 数据? 的相关文章

  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 获取 YouTube 最高缩略图分辨率

    我想获得 youtube 最高缩略图 maxresdefault jpg 像这个 http i ytimg com vi Cj6ho1 G6tw maxresdefault jpg http i ytimg com vi Cj6ho1 G6
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • PHP - 如何获取主要 HTML 内容,例如 Firefox 中的阅读器模式

    在 android Firefox 应用程序和 safari iPad 中 我们只能通过 阅读器模式 阅读主要内容 阅读更多 http support mozilla org en US kb how enable reader mode
  • PHP:读取所有传入 HTTP 请求的类 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 通过互联网IP地址从一台计算机访问xampp到另一台计算机

    我试图从另一台计算机访问我的 xampp 它显示为禁止错误 然后我在 google 上搜索答案 因为他们告诉在 apache 文件夹中的 httpd conf 文件中更改一些设置 如下所示 Order Deny Allow Deny fro
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • 字符串相似度的算法(比Levenshtein和similar_text更好)? php, Js

    在哪里可以找到比 levenshtein 和 phpimilar text 方法更准确地评估错误字符的拼写的算法 Example similar text jonas xxjon similar echo similar returns 6
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p

随机推荐