PHP file_get_contents() возвращает неправильную кодировку
Попробуйте прочитать XML-фид со следующего URL: http://www.mister-baseball.com/feed/
Однако вывод каким-то образом неправильно закодирован, и я не могу понять, как это исправить. Мой код выглядит следующим образом:
$url = "http://www.mister-baseball.com/feed/";
// Check the cache first
$error = false;
if (!file_exists($cacheFile) || filemtime($cacheFile) < (time() - 60 * 5)) {
if ($xmlString = @file_get_contents($url, FILE_TEXT)) {
// WHEN I PRINT THE $xmlString HERE, IT LOOKS BAD
file_put_contents($cacheFile, $xmlString, LOCK_EX);
} else {
// THIS PART IS NOT REACHED
$logDate = date('d-M-Y H:i:s');
error_log("[$logDate] Cannot open XML news feed at $url");
$error = true;
}
}
2 ответа
URL возвращает GZIP. После записи файла кэша откройте его с помощью winrar или 7zip, и вы увидите.
PHP встроил эту функцию.
http://php.net/manual/en/wrappers.compression.php
Ты можешь использовать:
simplexml_load_file("compress.zlib://http://www.mister-baseball.com/feed/")
ИЛИ ЖЕ
file_get_contents('compress.zlib://http://www.mister-baseball.com/feed/');