サーバーから取ってきたJSONが盛大に化けやがる件

事象

とある外部サーバーにJSONをGETリクエスト。ブラウザでURL叩けば正しく表示されるが、PHPfile_get_contents()で取ってくると盛大に化ける。はーつっかえ(自虐)

ヒント

ブラウザでHTTPヘッダを確認

Content-Type: application/json; charset=UTF-8
Content-Encoding: gzip

gzipで圧縮されてやがります

解決法

gzdecode()gzipを展開。

<?php
echo gzdecode(file_get_contents($_GET['url']));

とかやればおk