用curl拿到网页里的swf播放器,示例【知牛直播】
//php代码
public function zhiNiuLive($id = '1488869239') {
//curl操作
$url = "http://www.zhiniu8.com/live/".$id;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
//除去乱码
$dom = new DOMDocument();
$meta = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>';
@$dom->loadHTML($meta.$file_contents);
//获取部分内容
$textContent = $dom->textContent;
//匹配获取直播间id和播放器id
$anchorUidReg = '/anchorUid: "[0-9]+"/';
$liveRoomTopIdReg = '/liveRoomTopId: "[0-9]+"/';
$liveRoomSubIdReg = '/liveRoomSubId: "[0-9]+"/';
$idReg = '/[0-9]+/';
preg_match($anchorUidReg, $textContent, $anchorUid);
preg_match($liveRoomTopIdReg, $textContent, $liveRoomTopId);
preg_match($liveRoomSubIdReg, $textContent, $liveRoomSubId);
preg_match($idReg, $anchorUid[0], $Uid);
preg_match($idReg, $liveRoomTopId[0], $TopId);
preg_match($idReg, $liveRoomSubId[0], $SubId);
$swf = "http://weblbs.yystatic.com/s/".$TopId[0]."/".$SubId[0]."/finscene.swf";
$data['swf'] = $swf;
$this->load->view('user/header', $data);
$this->load->view('user/live', $data);
$this->load->view('user/footer', $data);
}
//live视图文件代码
<style>
.live{margin:0 auto;width:1000px;}
</style>
<div class="live">
<embed align="middle" allowfullscreen="true" allowscriptaccess="always" height="600px" mode="transparent" quality="high" src="<?php echo $swf; ?>" type="application/x-shockwave-flash" width="100%"/>
</div>