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/');

Другие вопросы по тегам