在PHP中制作一个API,它接受压缩的请求/响应、gziped和deflate

在PHP中制作一个API,它接受压缩的请求/响应、gziped和deflate,php,Php,我正在使用PHP进行API开发,所以我需要一个函数,它可以查看请求编码,并根据“Zipped”、“gziped”、“deflate”等编码设置响应,输出应该是JSON 我正在尝试使用以下代码,但运行时导致错误“此网页不可用\n错误\u内容\u解码\u失败” 所以,请建议任何一个我们如何实施这样的事情 function convertToHeaderEncoding($input, $encoding, $debug = 0) { $compressed_out = "";

我正在使用PHP进行API开发,所以我需要一个函数,它可以查看请求编码,并根据“Zipped”、“gziped”、“deflate”等编码设置响应,输出应该是JSON

我正在尝试使用以下代码,但运行时导致错误“此网页不可用\n错误\u内容\u解码\u失败”

所以,请建议任何一个我们如何实施这样的事情

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/目录中,然后编辑prepend.php文件,并添加一个require语句,该语句需要下面的compression.php文件。完成监视后(tail-f)您的php错误日志可以查看实际压缩的结果。我发现这很有效,请将下面的剪报保存在php/目录中,然后编辑prepend.php文件,并添加一条require语句,该语句需要下面的compression.php文件。完成后,请查看(tail-f)您的php错误日志以查看实际压缩的结果”)


我不确定你的代码是否可以那样工作。尝试以下解决方案:

// Turn on output buffering with the gzhandler
ob_start('ob_gzhandler');

// Output as normal
echo json_encode($data);

我不确定你的代码是否可以那样工作。尝试以下解决方案:

// Turn on output buffering with the gzhandler
ob_start('ob_gzhandler');

// Output as normal
echo json_encode($data);

你想重新发明轮子吗?为什么不使用任何现成的框架/类等。?相信我,那是更好的方法;)你能给我一些URL/sample for framework/classes例如,查找slim framework,然后编写一个自定义中间件来压缩/gzip响应对象你想重新发明轮子吗?为什么不使用任何现成的框架/类等。?相信我,那是更好的方法;)你能给我一些URL/sample for framework/classes查找slim framework示例,然后编写一个自定义中间件来压缩/gzip响应对象吗