使用 php curl 如何加快速度?

发布于 2022-09-06 23:49:08 字数 901 浏览 26 评论 0

我是使用 php curl 與對方的數據庫做互動

clipboard.png

一頁可能會跑三至五個 curl 程式

clipboard.png

我用谷歌瀏覽器看到有一個項目會跑至少3秒左右
我在想是不是curl的問題
因為我看其他都是ms單位...慢不到哪去

curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

我把這段寫了一個function
所以當該頁需要哪一隻API我就會啟用它
因此有時候一頁可能會需要三至五個
花的時間特久
想問說有沒有其他種寫法,能夠更快?!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

如梦 2022-09-13 23:49:08

慢,是因为域名解析的问题,可以使用curl的一个方法先将域名解析为对应的IP

// 如请求http://baidu.com, ping 出 IP 地址
$url = 'http://220.15.23.5/';
// 设置头信息(当用IP直接访问时,加这个如:https://baibu.com -> 220.15.23.5)
 curl_setopt($ci, CURLOPT_HTTPHEADER, array('Host:baibu.com'));
‖放下 2022-09-13 23:49:08

觉得自己写的不保险可以挂个小库咯……比如Guzzle这种……但你给的这些代码真的看不出来啥,访问慢跟很多因素都有关系,不是你这一小段配置就能卡死的。。。

这个俗人 2022-09-13 23:49:08

谢邀。你可以抓个包分析一下,有多种可能

  1. 如果从执行curl到发送dns请求(如果你的目标主机名是个域名的话)的时间过长,那就是curl启动太慢(我对php也不熟,不知道php执行curl要不要fork)
  2. 如果从发送dns请求到得到dns回复的时间过长,那就是域名解析太慢,可以换个快一点的dns或者直接使用ip
  3. 如果从发送http请求开始(可以从发送syn包开始算)到得到http回复的时间过长,那就是对方查询效率较低,不是你的问题

还可以用chrome发送同样的请求,看时间上有什么区别。

当然还有可能有别的原因,比如网络原因,如果你网络状况不好的话当然也会慢了。

╰つ倒转 2022-09-13 23:49:08

CURL速度慢可能与Expect:100-Continue有关,可以修改下代码试验一下:
http://www.laruence.com/2011/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文