课程咨询 :13623629309

太原PHP培训 > 达内新闻 > PHP5 升级到PHP7时curl注意事项
  • PHP5 升级到PHP7时curl注意事项

    发布:PHPor 的Blog      来源:PHPor 的Blog      时间:2016-11-10

  • PHP5 升级到PHP7时curl注意事项

    每一个版本的升级难免会存在一些问题,那么作为我们使用者来说就应该多总结,多了解。

    脚本:

    $url = $argv[1];

    $mm = array();

    function curl($url) {

    global $mm;

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);

    #curl_setopt($ch, CURLOPT_HTTPHEADER, array("Connection: close"));

    curl_exec($ch);

    $mm[] = $ch;

    curl_close($ch);

    }

    for($i = 0; $i < 1000; $i ++) {

    curl($url);

    }

    对于curl来说:

    如果请求头中含有 Connection: close 则,执行完请求之后,curl会主动关闭连接,即使不主动curl_close() 也没有关系

    如果请求头中没有Connection: close,则:

    如果curl句柄被销毁了,则连接自动关闭

    如果句柄没有被销毁(如: 被保存到了全局(或其他静态)变量中),则:

    PHP5中,curl_close() 可以关闭连接

    PHP7中,curl_close() 不会关闭连接(或许他猜测你可能还会用到),如果你不小心把句柄保存起来了,那么会有什么问题呢? 问题:

    服务器端等待足够长时间后要关闭连接,而客户端却不做任何处理,导致连接处于CLOSE_WAIT状态,如果足够多,会导致local port被用完。

    不过,这个问题看似不好解决,也比PHP5中好处理,PHP5中如果调用了curl_close,而且还把curl句柄保存了起来,则可能会出现保存了大量的句柄而自己却不知道(就是所谓的内存泄漏)

    好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:如何组织PHP中的异常(二)

下一篇:php检查浏览页面的访问者在用什么浏览器

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-29

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-29

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-29

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-29

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56

    在线客服系统