PHP下的cURL库

简介: PHP下的cURL库主要有两个Requests和Guzzle,两个都很复杂。   Requests优先使用cURL,没有cURL时会自动启用fsockets,除非你手工指定了Transport。

PHP下的cURL库主要有两个Requests和Guzzle,两个都很复杂。

 

Requests优先使用cURL,没有cURL时会自动启用fsockets,除非你手工指定了Transport。

 

Guzzle有丰富的日志库支持和日志格式,用插件订阅的方式订阅,从代码上看采用事件机制,质量更高。

它只支持cURL(至少只v3版本是),并依赖于Symfony的EventEmitter,但它被ReactPHP所依赖。

最近(2014-03-28)发现它从v3.8.1升级到v4.0.0rc,居然把Namespace改了,将前两段缩减为一段,源码目录也去掉了顶层的Guzzle,毫无意义还导致既不向前兼容,也和其他常见PHP库不一致。

 

现在是重点,Guzzle通常用得好好的,但昨天发现一个问题,有个远程的网址,有到支付宝去查询支付结果。调用这个网址时,Guzzle会不成功,但Requests可以。

 

下面是关于cURL命令的,其有两个超时时间,connect-timeout和timeout-max(后面这个通常在程序中就叫做timeout),其中后者包含前者,cURLl默认的connect-timeout是300秒,没有给timeout-max设置值,但由于包含关系,当你不设置timeout时,它至少也是300秒。

而对于PHP的fsockets,由于php.ini中有个配置项default_socket_timeout,其默认值才60秒。

另外cURL默认不支持http redirect,需要传递 -L 选项(无参数),但根据使用PHP和Python的经历,不少cURL库默认是开启了redirect,至少Guzzle的文档明确说了是开启了的,如果需要,要手动关闭。

 

 

依据:

 

curl默认的connect-timeout是300秒

https://github.com/bagder/curl/blob/master/lib/connect.h

 

3.8 How do I tell curl to follow HTTP redirects?

http://curl.haxx.se/docs/faq.html

目录
相关文章
|
5月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
31 0
|
1月前
|
PHP
php curl获取cookie
php curl获取cookie
13 0
|
2月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
|
2月前
|
PHP 数据格式
PHP 中的CURL 模拟表单的post提交
PHP 中的CURL 模拟表单的post提交
18 0
|
5月前
|
数据采集 监控 JavaScript
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com
本文将介绍如何使用PHP语言和一个简单的第三方库simple_html_dom来爬取JD.com的商品信息。simple_html_dom是一个轻量级的HTML解析器,它可以方便地从HTML文档中提取元素和属性,而无需使用正则表达式或DOM操作。本文将通过一个实例来展示如何使用simple_html_dom库来爬取JD.com的商品名称、价格、评分和评论数,并将结果保存到CSV文件中。本文还将介绍如何使用代理IP技术来避免被目标网站封禁或限制。
巧用简单工具:PHP使用simple_html_dom库助你轻松爬取JD.com
|
6月前
|
开发框架 JavaScript Java
推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言
推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言
47 0
|
9月前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
65 0
|
10月前
|
PHP
php函数file_get_contents无法获取到https链接内容问题使用curl的解决方案
php函数file_get_contents无法获取到https链接内容问题使用curl的解决方案
113 0