在PHP中创建一个API,接受请求/响应Zipped,gziped,deflate

时间:2015-07-30 10:31:07

标签: php

我正在使用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;

1 个答案:

答案 0 :(得分:0)

我不确定您的代码是否可以这样工作。试试这个解决方案:

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

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