json_decode возвращает null в php

Я пытаюсь разобрать json, используя json_decode в php. Он не подходит для URL-адреса, может ли кто-нибудь сказать мне, почему его провал и есть ли альтернатива json_decode в php?

Вот мой код

$url='https://espn.go.com/travel/sports/calendar/getList.json?&xhr=1&date=20121027&type=list&query=null&myTeams='; $html = file_get_html($url); $json=json_decode($html,true); 

// json здесь null

file_get_html – это PHP простой HTML DOM Parser. Not default PHP function

  $html = file_get_contents($url); 

Также обратите внимание, что возвращенный JSON имеет ошибку символов Malformed UTF-8, возможно, неправильно закодированных

Чтобы исправить это

 $url = 'http://espn.go.com/travel/sports/calendar/getList.json?&xhr=1&date=20121027&type=list&query=null&myTeams='; $html = file_get_contents($url); $json = preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($html)); $json = json_decode($json); echo "<pre>"; print_r($json); 

Вывод

 tdClass Object ( [nfb] => Array ( [0] => stdClass Object ( [events] => Array ( [0] => stdClass Object ( [id] => 265911 [time] => 12:00 AM ET [sportId] => 23 [link] => http://espn.go.com/ncf/team/_/name/ [prevLink] => http://espn.go.com/ncf/preview?gameId=323010002 [recapLink] => http://espn.go.com/ncf/recap?gameId=323010002 [shortSport] => ncaa [homeId] => 2 [awayId] => 245 [homeScore] => -1 ... So Many More 

Посмотреть демо-версию