首页 > 编程语言 >php curl卡顿缓慢的问题

php curl卡顿缓慢的问题

时间:2023-06-21 13:33:43浏览次数:102  
标签:setopt url ip host CURLOPT curl php 卡顿

这是多个原因造成的,

一是,php运行缓慢,最好重启一下。

如果重启还是不能解决,

1、DNS解析慢的原因,

处理方案,使用gethostbyname代替

推荐代码如下:

$url_arr = parse_url($full_url);
$url_host = $url_arr["host"];
$url_port = $url_arr["port"];
$url_ip = gethostbyname($url_host);
if($url_host==$url_ip){
	$url_ip='127.0.0.1';
}
$url_nameresolve="{$url_host}:{$url_port}:{$url_ip}";
curl_setopt($ch, CURLOPT_RESOLVE, [$url_nameresolve]);
//$url = preg_replace("#^http([s]?)://$host#", "http\$1://$ip", $url);
//curl_setopt($curl, CURLOPT_HTTPHEADER, "Host: $host");

或者尝试添加一个禁用ipv6解析

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);//这条似乎管用

处理完毕,速度上来了。

其它方法,需要shell_exec扩展,不太推荐

function gethostbyname2($host, $timeout = 3) {
$query = 'nslookup -timeout='.$timeout.' -retry=1 '.$host;
$query = shell_exec($query);
if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
return trim($matches[1]);
return $host;
}

2、当POST内容超过1024时,加入如此header声明,否则504错误

$header[] = "Expect:";
if ($header) {
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}

3、使用旧版本协议,原因暂时不明

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);

记录完毕。

标签:setopt,url,ip,host,CURLOPT,curl,php,卡顿
From: https://www.cnblogs.com/keringing/p/17496014.html

相关文章

  • 享有盛誉的PHP高级教程
    媒体评论“很长时间没有看到这样有价值的PHP高级图书了,我从本书中获益匪浅。强烈推荐!”——QuentinZervaas,资深PHP程序员,《PHPWeb2.0开发实战》一书作者 “本书是我读过的最好的技术书,推荐阅读。”  ——Amazon.com 享有盛誉的PHP高级教程ZendFramework核......
  • PHP Web 2.0开发实战
    如何使用ZendFramework、Smarty、Ajax创建一流的网站 “读完本书后,我发现自己对Web开发和MVC模式的理解都已经今非昔比……强烈推荐此书!”——Amazon.com “……一部极富启发性的PHP实战指导书,业界专家充分演示了如何使用ZendFramework、Smarty、A......
  • 【web开发】PHP命名空间的别名和导入
    前言前面两篇文章我们详细介绍了PHP命名空间的定义和基本使用以及命名空间相关术语解读,对PHP的命名空间的有了更多的了解,本文我们再深入探索PHP命名空间的更多使用技巧。废话不多说,直接上菜。命名空间的别名和导入涉及到命名空间的使用,命名空间中的别名和导入这俩个概念我们是无法......
  • 基于php的在线宠物电商交易平台的设计与实现
    随着社会的高速发展,社会压力逐步增加,忙碌的工作使得人们无暇过多地陪伴亲人。此时,人们也已不再只是追求物质上的享受,也逐渐看重精神上的享受。所以,排遣压力,寻求生活上的陪同者,享受更好的生活等理由,使得宠物在人类的生活中开始充当越来越重要的角色,随着养宠物的家庭的不断增多,宠物经......
  • 基于PHP理工大社区管理系统的设计与实现
    随着信息技术的飞速发展,特别是网络和数据库技术的发展,计算机已经成为当今处理信息数据的主要工具。数据库技术已经成为计算机应用技术中的一个重要组成部分,对于大量的数据,使用数据库来存储管理会比文件来存储数据,管理起来更高效、方便。人们对于现实中的各种事物的管理,已经越来越依......
  • 图书馆管理系统代码源码(php+css+js+mysql) 完整的代码源码,系统使用B/S架构。
    图书馆管理系统代码源码(php+css+js+mysql)完整的代码源码,系统使用B/S架构。优化过的界面,拥有管理员和普通用户,普通用户可注册登录,管理员可登录,功能齐全。管理员可管理普通用户,增加其他管理员,增添图书,借还书操作,查看已还书。普通用户,可在线查看现有图书,和自己已借图书。推荐使用php......
  • 选题系统代码源码(php+css+js+mysql) 完整的代码源码,系统使用B/S架构。
    选题系统代码源码(php+css+js+mysql)完整的代码源码,系统使用B/S架构。优化过的界面,拥有管理员、审核员、教师和学生这四种身份登录方式和对应功能,功能齐全。推荐使用phpstudy+navicat搭建和管理项目!服务:提供现成代码,提供环境搭建相关文档。选题系统代码源码是一套完整的代码源码,采......
  • php webhook excute that can pull code
      <?phpexec('whoami2>&1',$res);var_dump($res);exec('cd'.dirname(__FILE__).'/../&&sudogitpulloriginmaster2>&1',$res,$rc);var_dump($rc);if($rc==0){echo'部署成功<br&g......
  • 【web开发】PHP命名空间中的子空间和公共空间详解及相关术语解读
    前言PHP的命名空间和文件系统的结构很像,文件夹可以有子文件夹,命名空间中也可以定义子空间来描述各个空间之间的所属关系。比如:cart购物车和order订单这两个模块都处于同一个shop商城项目内,通过命名空间子空间表达关系的:<?phpnamespaceshop\cart;classDemo{ //类的成员}name......
  • BUUCTF:[ISITDTU 2019]EasyPHP
    题目地址:BUUCTF:[ISITDTU2019]EasyPHPRefer:https://tiaonmmn.github.io/2019/07/18/ISITDTU-Easy-PHP/思路很简单,绕过这两个if即可任意代码执行先看一下第一个正则匹配看不懂的推荐使用这个网站:https://regex101.com/if(preg_match('/[\x00-0-9\'"`$&.,|[{_defgops\x7F]+/i......