window.HNF_GLOBAL_INIT = (.*)<\/script>/', $result, $matches); if (count($matches) < 2) { return null; } return extractInfo($matches[1], $cdn, $cdnType, $mediaurl); } function extractInfo($content, $cdn, $cdnType, $mediaurl) { $parse = json_decode($content, true); if (array_key_exists("exceptionType", $parse)) { header('location:' . $mediaurl); exit(); } $streamInfo = $parse['roomInfo']['tLiveInfo']['tLiveStreamInfo']['vStreamInfo']['value']; $cdnSlice = array(); $finalurl = null; foreach ($streamInfo as $value) { $cdnTypeValue = $value['sCdnType']; $cdnSlice[] = $cdnTypeValue; if ($cdnTypeValue == $cdn) { $urlStr = sprintf("%s/%s.%s?%s", $value['sFlvUrl'], $value['sStreamName'], $value['sFlvUrlSuffix'], parseAntiCode($value['sFlvAntiCode'], $value['sStreamName'])); $finalurl = str_replace("http://", "https://", $urlStr); } } if ($cdnType == "display") { return $cdnSlice; } return $finalurl; } $liveurl = getLiveUrl($rid, $cdn, $cdnType, $mediaurl); $mediaurl = $liveurl == null ? $mediaurl : $liveurl; header('location:' . $mediaurl); exit();