有没有办法将--compressed传递到PHP的curl_setopt()中?

2024-03-27

使用curl时,我发现我所访问的服务器上的行为有所不同,具体取决于我是否通过--compressed作为一个论点或不。

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

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

我还尝试将编码设置为空字符串:'',因为这意味着支持任何类型的压缩。

但是,如果我通过了--compressed通过命令行,我返回的内容类型是:gzip。如果我不进去--compressed,我返回的内容类型是text/html;charset=UTF-8

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

=====

让我澄清一下我想要实现的目标。当我运行以下命令时:curl -I http://someserver.com --compressed获取我的内容类型:gzip

运行相同的命令curl -I http://someserver.com没有--compressed让我明白 内容类型: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, CURLOPT_ENCODING, '' ); 
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(可能)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法将--compressed传递到PHP的curl_setopt()中? 的相关文章

随机推荐