有没有办法将–compressed传递给PHP的curl_setopt()?
当使用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得到我 尝试在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(可能).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |