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了
php curl采集,服务器gzip压缩返回数据怎么办的更多相关文章
- Curl 采集乱码 gzip 原因及解决方案 utf-8
用curl获取一个经过gzip压缩后的网页时返回乱码 原因大体就是服务器返回的Content-Encoding的值和网页的编码不同,造成curl解码出问题,直接将gzip或deflate编码的文件下载 ...
- php curl 中的gzip压缩性能测试
前因: 请求接口次数很多,每日两亿多次,主要是有些接口返回数据量很大高达110KB(为了减少请求次数,将多个接口合并成一个导致的).后端接口的nginx已经开启gzip,所以做个测试,看看是否在请求时 ...
- 网站访问优化(二):开启apache服务器gzip压缩
昨天,把带宽从1M升级到2M,使用cdn版本的jquery之后,网站访问速度由平均5s(在禁止缓存的情况下,使用缓存大概在2.8s)下降到2.8s的样子. 今天,继续优化. 第1步: 把图片进行了 ...
- Python—HTTP处理Gzip压缩数据
HTTP 请求中包含Accept-encoding: gzip头信息可以告诉服务器,如果它有任何新数据要发送给我时,请以压缩的格式发送.如果服务器支持压缩,它将返回由 gzip 压缩的数据并且使用Co ...
- 解密gzip压缩的网页数据流(转)
因为采集某个网页遇到问题,一直无法获取页面数据. 经过一番排查,发现该网站会检查客户端的Header信息,如果遇到不明确的Header信息就直接否定,返回0数据. 如果Header信息正确,就会返回经 ...
- Asp.net WebAPi gzip压缩和json格式化
现在webapi越来越流行了,很多时候它都用来做接口返回json格式的数据,webapi原本是根据客户端的类型动态序列化为json和xml的,但实际很多时候我们都是序列化为json的,所以webapi ...
- Jquery 等待ajax返回数据loading控件ShowLoading组件
1.意义 开发项目中,前台的页面要发请求到服务器,服务器响应请求返回数据到前台,这段时间,有可能因为返回的数据量较大导致前台页面出现短暂性的等待,此时如果用户因不知情而乱点击有可能造成逻辑混乱,所以此 ...
- php curl函数采集网页出现gzip压缩、编码不同导致的乱码 图文解决方法
方法一: header("content-type:text/html;charset=utf-8");$url="http://115.47.116.10/rest/k ...
- PHP通过curl向其它服务器发请求并返回数据
在很多时候,我们都需要请求第三方的服务器来获取一些数据,比如token,比如百度的主动推送,那么我们的php如何实现向第三方服务器发请求呢?我们可以通过curl来实现 首先定义请求的url,然后创建h ...
随机推荐
- okhttp 请求list数据实例
public class DataBean { /** * id : 61684 * movieName : <猜火车2>先导预告片 * coverImg : http://img31.m ...
- Android开发学习之三——第一个Android程序
下面我们建立第一个Android程序. 打开Eclipse,开始如下步骤: 1.File ==> New ==> Android Application Project 出现如下窗口: 2 ...
- BA模型 第10章
1.BA模型BA模型就是世界坐标到像素坐标的转换过程.这里多了一个去畸变.因为归一化平面坐标在转成像素坐标的过程中会出现畸变.这里只处理了径向畸变,径向畸变包括桶形失真和枕形失真,都是由于图像放大率随 ...
- windows10怎么开机启动虚拟机
将如下脚本添加到windows计划任务中即可 "D:\Program Files (x86)\VMware\VMware Workstation\vmplayer.exe" &qu ...
- L88
Where You Vote May Affect How You Vote On election day, where do you vote? If it's in a church, you ...
- MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031
将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的 上面是第一个表 我们当做主表 a 第二个表 我们找注册 ...
- 「LuoguP1725」琪露诺(dp 单调队列
题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河岸去追 ...
- 【C++基础】形参实参
c++规定:一个函数的默认实参既可以在定义中,也可在声明中指定,但在一个文件(准确的说,是一个作用域)中只能为一个形参指定默认实参一次
- mysql数据库表分区详解(数量过大的数据库表通过分区提高查询速度)
这篇文章主要介绍了MySQL的表分区,例如什么是表分区.为什么要对表进行分区.表分区的4种类型详解等,需要的朋友可以参考下 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysq ...
- Windows C/C++调试
windows兼容dirent.h error c4996: 'fopen': This function or variable may be unsafe This file requires _ ...