php curl采集,服务器gzip压缩返回数据怎么办

一般服务器不会胡乱返回gzip压缩的数据,一般是客户端请求的头部里包含你浏览器能接受的压缩方式,

Accept-Encoding:gzip,deflate,sdch

这里是gzip 、deflate、sdch这三种方式,这里不一一说明是指什么,不懂的可以去找谷哥度娘,

有些服务器强制返回gzip压缩的数据,我们采集的时候,返回的是乱码,根本无法读取使用,这个时候马上查看手册

发现其实curl里有个参数,curl_setopt($ch, CURLOPT_ENCODING,‘gzip‘);

手册解释:

CURLOPT_ENCODING HTTP请求头中"Accept-Encoding: "的值。支持的编码有"identity""deflate""gzip"。如果为空字符串"",请求头会发送所有支持的编码类型。

只要加上这句就OK了

时间: 2024-10-15 02:32:10

php curl采集,服务器gzip压缩返回数据怎么办的相关文章

网站访问优化(二):开启apache服务器gzip压缩

昨天,把带宽从1M升级到2M,使用cdn版本的jquery之后,网站访问速度由平均5s(在禁止缓存的情况下,使用缓存大概在2.8s)下降到2.8s的样子. 今天,继续优化. 第1步:   把图片进行了压缩,70kb以上的banner用的大图,压缩成50kb左右.图片质量稍微下降了一点,没钱连高清图片都用不起,所以还是得有钱,赚钱. 第2步:  js压缩. 昨天,也用了网上下载的js/css压缩器,部署时,用压缩版本的.速度并没有明显的提升,可能是因为js和css很少,而且都比较小的缘故. 晚上,

访问Tomcat服务器返回数据乱码

前序: 在网络中,数据的传输,最常用的格式有两种:XML和JSON . 今天在做一个app版本更新检查.流程是: 1.Andriod客户端 向 Tomcat服务器 发起Http请求. 2.服务器响应并返回数据.返回的数据中,包含了新版app的特性和更新内容.并通过一个Dialog 对话框的形式,来告知用户,新版的app作了那些方面的改进.也就是调用dialog.setMessage()来设置消息内容,结果发现全是乱码. 3.之前一直没遇到这种情况,后来在QQ群了问了才知道,原来这个涉及到了编码的

解密gzip压缩的网页数据流(转)

因为采集某个网页遇到问题,一直无法获取页面数据. 经过一番排查,发现该网站会检查客户端的Header信息,如果遇到不明确的Header信息就直接否定,返回0数据. 如果Header信息正确,就会返回经过GZip压缩的数据,这样直接获取网页数据的想法破灭了. 实际上.NET已经为我们封装好了GZip和Deflate加解压算法类,都位于 System.IO.Compression 命名空间内. 下面我来演示如何分析并提取经过GZIP压缩的网页数据流. Imports System.NetImport

Asp.net WebAPi gzip压缩和json格式化

现在webapi越来越流行了,很多时候它都用来做接口返回json格式的数据,webapi原本是根据客户端的类型动态序列化为json和xml的,但实际很多时候我们都是序列化为json的,所以webapi的序列化比我们用ServiceStack.Text序列化要多花费一些时间,还有如果返回的数据量比较大那么我们应该启动gzip和deflate压缩.而这些实现都不得影响现有的code, 我个人喜欢同时也是习惯用特性来完成压缩和json格式化. 1.压缩的code: namespace MvcApp {

Jquery 等待ajax返回数据loading控件ShowLoading组件

1.意义 开发项目中,前台的页面要发请求到服务器,服务器响应请求返回数据到前台,这段时间,有可能因为返回的数据量较大导致前台页面出现短暂性的等待,此时如果用户因不知情而乱点击有可能造成逻辑混乱,所以此时需要在加载数据中将前台进行提示在加载数据中,利用jquery的遮罩组件可以完成这个功能需求. 2.实现步骤 (1).下载 showLoading.css    jquery.showLoading.min.js  两个文件. (2).在jsp中引入这两个文件 <link href="styl

AFNetWorking同时解析MsgPack和JSON等多种返回数据

最近项目遇到一种情况就是,为了减少流量,服务器的正确返回数据会用MsgPack格式进行返回,而错误数据或者网络错误则会以JSON数据格式返回. 首先标准的AFNetWorking是不能解析MsgPack数据格式的,需要加入相应的三方库, 而AFNetWorking的大牛作者为我们提供了两个库,可以很方便的加入进来: 如果用CocoaPod管理三方库, 在Podfile中加入以下两行,这样两个库就加入到工程中了: pod 'AFMsgPackSerialization', '~> 0.0.1' p

PHP通过curl向其它服务器发请求并返回数据

在很多时候,我们都需要请求第三方的服务器来获取一些数据,比如token,比如百度的主动推送,那么我们的php如何实现向第三方服务器发请求呢?我们可以通过curl来实现 首先定义请求的url,然后创建httpHeader的头,定义通过post方式发送请求的参数: 初始化curl: 1 $url="URL地址"; 2 3 //然后创建httpHeader的头: 4 5 $httpHeader=createHttpHeader(); 6 7 //定义通过post方式发送请求的参数: 8 9

使用Gzip压缩数据,加快页面访问速度

在返回的json数据量大时,启用Gzip压缩,可以提高传输效率.下面为Gzip压缩对json字符串压缩并输出到页面的代码. 一.代码 /** 向浏览器输出字符串响应数据,启用gzip压缩 */ protected void writeResponseDataStr(String data){ /** 获取响应对象 */ HttpServletResponse response = ServletActionContext.getResponse(); /** 设置响应内容类型 */ respon

Windows2003服务器IIS启用Gzip压缩的设置

http://jingyan.baidu.com/article/148a192178ec834d71c3b12b.html 步骤 1 2 3 本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高. 一. HTTP压缩概述 HTTP压缩是在Web服务器 和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的压缩算法如gzip等压缩HTML.JavaScript或 CSS文件.压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度.当然,同时也会增加