加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

有没有办法将–compressed传递给PHP的curl_setopt()?

发布时间:2020-12-13 22:51:47 所属栏目:PHP教程 来源:网络整理
导读:当使用curl时,我看到服务器上的行为有所不同,这取决于我是否通过 – 压缩作为参数. 我已经将Accept-Encoding标头设置为gzip,deflate,sdch: curl_setopt( $ch,CURLOPT_ENCODING,'gzip,sdch' ); 我也尝试将编码设置为空字符串:”因为这可能意味着支持任何类
当使用curl时,我看到服务器上的行为有所不同,这取决于我是否通过 – 压缩作为参数.

我已经将Accept-Encoding标头设置为gzip,deflate,sdch:

curl_setopt( $ch,CURLOPT_ENCODING,'gzip,sdch' );

我也尝试将编码设置为空字符串:”因为这可能意味着支持任何类型的压缩.

但是,如果我通过命令行传递 – 压缩,我得到的内容类型是:gzip.如果我没有传入 – 压缩,我得到的内容类型是text / html; charset = UTF-8

使用PHP的curl_exec(),我似乎无法让它返回内容类型:gzip.

=====

让我澄清一下我想要完成的事情.当我运行以下命令时:curl -I http://someserver.com –compressed get me content-type:gzip

运行相同的命令curl -I http://someserver.com没有–compressed得到我
content-type:text / html; charset = UTF-8

尝试在PHP中执行此操作:

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL,"http://someserver.com" );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER,1 );

// I've tried excluding this line,setting it to gzip,and empty string
curl_setopt( $ch,'' ); 
curl_setopt( $ch,CURLOPT_HEADER,1);

curl_exec( $ch ) );
$content_type = curl_getinfo( $ch,CURLINFO_CONTENT_TYPE );

无论我尝试什么,我都得到$content-type = text / html; charset = UTF-8而不是gzip

解决方法

并非所有世界各地的服务提供压缩内容作为响应.通过选项CURLOPT_ENCODING,您只能从服务器请求压缩内容.但是如果没有实现机制,服务器将返回纯HTML.您可以尝试其他提供压缩内容的随机网站.例如youtube.com(可能).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读