2015-08-16 65 views
1

我壓縮如下的陣列,編碼壓縮的數據轉換成JSON字符串

<?php 
    $input = array('name'=>'PHP'); 
    $compressed = gzcompress(serialize($input)); 

    echo '<pre>'; print_r($compressed); 
?> 

而且它打印數據如下

xœK´2´ª.¶2±RÊKÌMU².¶2¶R 
ðP²®nJ» 

現在,我想$compressed轉換爲json字符串。由於壓縮數據包含特殊字符,因此會引發錯誤,所以我在下面嘗試JSON_UNESCAPED_UNICODE是代碼片段。

<?php 
    // $compressed value getting from above script 
    echo json_encode($compressed,JSON_UNESCAPED_UNICODE); 
?> 

還是不行。任何人都可以建議如何將壓縮數據編碼爲json字符串。

+1

你可能想看看關於這個問題的這個早期的崗位:http://stackoverflow.com/questions/1443158/ binary-data-in-json-string-something-better-base-base64 – cars10m

回答

1

嘗試使用:

$data = base64_encode(gzcompress(serialize($input))); 

要恢復:

$input = unserialize(gzuncompress(base64_decode($data))); 
+1

歡迎來到SO。我也找到了解決方案。感謝您的興趣和熱情,回答老問題。 :-) – Butterfly