我正在使用PHP进行API开发,所以我需要一个查看请求编码的函数,并根据编码类似#34; Zipped"," gziped",&#设置响应。 34;放气"等,输出应该是JSON。
我正在尝试使用下面的代码,但是在运行时导致错误"此网页不可用\ n ERR_CONTENT_DECODING_FAILED"
所以,请建议我们如何实现这样的事情。
function convertToHeaderEncoding($input, $encoding, $debug = 0)
{
$compressed_out = "";
if($encoding == "gzip")
{
$compressed_out = gzencode($input);
if($debug == 1)
echo 'Gzipd Output'."\n".'Before compression size '.strlen($output).' bytes'."\n".' After compression size '.strlen($compressed_out).' bytes';
header("Content-Encoding: gzip");
return $compressed_out;
}
else
return $input;
}
$ arr = array(" Key1" =>"我发现这很有效,将下面的剪辑保存在php /目录中,然后编辑你的prepend.php文件并添加一个require语句这需要下面的compression.php文件。一旦完成观察(tail -f)你的php错误日志,看看压缩的结果在行动。我发现这很好用,保存下面的剪辑在你的php /目录然后编辑你的前置。 php文件并添加一个需要下面的compression.php文件的require语句。一旦完成监视(tail -f)你的php错误日志,看看压缩的结果在行动。我发现这很好用,保存你的php下面的剪辑/ directory然后编辑你的prepend.php文件并添加一个需要下面的compression.php文件的require语句。一旦完成监视(tail -f)你的php错误日志以查看压缩的结果");
$jsonString = json_encode($arr, true);
$output = convertToHeaderEncoding($jsonString, "gzip", 1);
echo $output;
答案 0 :(得分:0)
我不确定您的代码是否可以这样工作。试试这个解决方案:
// Turn on output buffering with the gzhandler
ob_start('ob_gzhandler');
// Output as normal
echo json_encode($data);