//一、分页数:电影
function importFilmPages($vtype, $cate_code, $cate_name)
{
for($i = 2; $i >= 1; $i--)
{
echo $cate_code.' page='.$i.PHP_EOL;
importVideoList($vtype, $i, $cate_code, $cate_name);
}
}
//一、分页数:恐怖
function importHorrorPages($vtype, $cate_code, $cate_name)
{
for($i = 2; $i >= 1; $i--)
{
echo $cate_code.' page='.$i.PHP_EOL;
importVideoList($vtype, $i, $cate_code, $cate_name);
}
}
//一、分页数:电视剧
function importDianshijuPages($vtype, $cate_code, $cate_name)
{
for($i = 2; $i >= 1; $i--)
{
echo $cate_code.' page='.$i.PHP_EOL;
importVideoList($vtype, $i, $cate_code, $cate_name);
}
}
//一、分页数:综艺
function importZongyiPages($vtype, $cate_code, $cate_name)
{
for($i = 2; $i >= 1; $i--)
{
echo $cate_code.' page='.$i.PHP_EOL;
importVideoList($vtype, $i, $cate_code, $cate_name);
}
}
//一、分页数:动漫
function importDongmanPages($vtype, $cate_code, $cate_name)
{
for($i = 2; $i >= 1; $i--)
{
echo $cate_code.' page='.$i.PHP_EOL;
importVideoList($vtype, $i, $cate_code, $cate_name);
}
}
//二、视频列表
function importVideoList($vtype, $page, $cate_code, $cate_name)
{
global $apisever_url;
//第一步:获取电影栏目中某个分页列表
$one_url = $apisever_url . '/type/' . $vtype . '/' . $page . '.html';
$one_htmldata = curl_request($one_url);
// 新建DOM实例
$one_html = new simple_html_dom();
$one_html->load($one_htmldata);
//echo $one_html;
foreach($one_html->find('div.movie-item') as $dv)
{
$vid = $dv->find('a', 0)->href;
$vid = str_replace('/show/', '', $vid);
$vid = str_replace('.html', '', $vid);
echo $vid.PHP_EOL;
//setVideoStatus($vid);
if(!empty($vid)) importVideoData($vid, $cate_code, $cate_name);
}
}
//三、视频内容
function importVideoData($vid, $cate_code, $cate_name)
{
global $mbdb, $apisever_url;
//第一步:获取某部电影
$media_url = $apisever_url . '/show/' . $vid . '.html';
$media_htmldata = curl_request($media_url);
// 新建DOM实例
$media_html = new simple_html_dom();
$media_html->load($media_htmldata);
//echo $one_html;
//媒体名称
$media_name = $media_html->find('li.active', 1)->innertext;
$media_name = str_replace('\\', '', $media_name);
$media_name = str_replace('\'', '', $media_name);
//剧情介绍
$description = $media_html->find('p.summary', 0)->innertext;
$description = str_replace('<br />', '', $description);
$description = str_replace(' ', '', $description);
$description = str_replace('\'', '', $description);
//封面图片地址
$coverimg = $media_html->find('img.img-thumbnail', 0)->src;
$coverimg = trim($coverimg);
if(empty($media_html->find('td.span2', 0)->next_sibling())) return;
//导演
$director = $media_html->find('td.span2', 0)->next_sibling()->innertext;
$director = str_replace('\\', '', $director);
$director = str_replace('\'', '', $director);
//主演
$playactor = $media_html->find('td.span2', 1)->next_sibling()->innertext;
$pos = strrpos($playactor, '<a');
if($pos) {
$playactor = trim(substr($playactor, 0, $pos));
}
$playactor = str_replace('\\', '', $playactor);
$playactor = str_replace('\'', '', $playactor);
//类型
$mtype = $media_html->find('td.span2', 2)->next_sibling()->innertext;
//制片地区
$media_area = $media_html->find('td.span2', 3)->next_sibling()->innertext;
//更新状态
$media_status = $media_html->find('td.span2', 4)->next_sibling()->innertext;
//上映日期
$playdate = $media_html->find('td.span2', 5)->next_sibling()->innertext;
$pos = strrpos($playdate, '(');
if($pos) {
$playdate = trim(substr($playdate, 0, $pos));
}
$playdate = str_replace('\\', '', $playdate);
$playdate = str_replace('\'', '', $playdate);
//评分
$mark = $media_html->find('td.span2', 6)->next_sibling();
if(!empty($mark)) $mark = $mark->find('a', 0)->innertext;
$pos = strrpos($mark, '<i');
if($pos) {
$mark = trim(substr($mark, 0, $pos));
}
//年代
$years = $media_html->find('span.movie-year', 0)->innertext;
$years = str_replace('(', '', $years);
$years = str_replace(')', '', $years);
$years = (int)str_replace('-', '', $years);
//更新日期
$uptdate = $media_html->find('div[style=margin:10px auto;]', 0)->innertext;
$uptdate = str_replace('<em>更新时间:', '', $uptdate);
$uptdate = str_replace('</em>', '', $uptdate);
$uptdate = trim($uptdate);
if(!empty($uptdate)) {
$lastuptdate = $uptdate.' '.date('H:i:s');
} else {
// 当前日期格式输出
$lastuptdate = date("Y-m-d H:i:s");
}
if(empty($playdate)) $playdate = $lastuptdate;
//播放页地址
$video_url = $apisever_url . $media_html->find('div.online-button', 0)->find('a', 0)->href;
//剧集地址
$ul_juji_arr = $media_html->find('ul.dslist-group', 0)->find('li');
//总剧集数
$media_juji = 1;
//已出剧集数
$media_cnt = 1;
if($cate_code != 'film') {
//$media_juji = (int)count($ul_juji_arr);
if(strstr($media_status, ' /')) {
$media_juji_arr = explode('/', $media_status);
//已出剧集数
$media_cnt = str_replace('更新至', '', trim($media_juji_arr[0]));
$media_cnt = (int)str_replace('集', '', $media_cnt);
//总剧集数
$media_juji = str_replace('共', '', trim($media_juji_arr[1]));
$media_juji = (int)str_replace('集', '', $media_juji);
}
}
//媒体表
$tablename_a = '94aw_media';
//视频表
$tablename_b = '94aw_video';
//新增数据
$mediatotalrec = getsqltotal($tablename_a);
$mediamaxindex = $mediatotalrec + 1;
$mediaobjectId = $tablename_a."_".$mediamaxindex;
$media_f_index = md5();
$source = '94aw';
$media_f_index = md5($source.$vid);
//媒体结构体
$mediaadd_arr = array(
"objectId" => "'".$mediaobjectId."'", //对象ID
"cate_name" => "'".$cate_name."'", //类别名
"cate_code" => "'".$cate_code."'", //类别码
"media_name" => "'".$media_name."'", //媒体名称
"description" => "'".$description."'", //剧情介绍
"media_area" => "'".$media_area."'", //制片地区
"mtype" => "'".$mtype."'", //类型
"coverimg" => "'".$coverimg."'", //封面图片地址
"media_url" => "'".$media_url."'", //媒体地址
"director" => "'".$director."'", //导演
"playactor" => "'".$playactor."'", //主演
"years" => $years, //年代
"media_status" => "'".$media_status."'", //更新状态
"mark" => $mark, //评分
"media_juji" => $media_juji, //总剧集数
"media_cnt" => $media_cnt, //已出剧集数
"`index`" => $mediamaxindex, //唯一索引
"source" => "'".$source."'", //来源
"source_id" => $vid, //来源ID
"playdate" => "'".$playdate."'", //上映日期
"f_index" => "'".$media_f_index."'",
"lastuptdate" => "'".$lastuptdate."'", //更新时间
"syncdate" => "NOW()" //同步时间
);
//var_dump($mediaadd_arr);
//如果媒体已存在,则不添加
/*$db_mediawhere = array(
//"media_name = '".$media_name."'",
"source = '".$source."'",
"source_id = ".$vid
);
$db_mediaarr = qrysql_94aw_media("objectId", $db_mediawhere);
//var_dump($db_mediaarr);
if(!empty($db_mediaarr)) {} else {*/
$db_mediaid = insertInfo($tablename_a, $mediaadd_arr, null, 'ignore');
//}
for($j = 0; $j < count($ul_juji_arr); $j++)
{
$jujili = $ul_juji_arr[$j];
//如果是电影,则配置主要视频页
if($j == 0) $main = 1;
else $main = 0;
//剧集地址
$juji_url = $apisever_url . $jujili->find('a', 0)->href;
//剧集名称
$video_remark = $jujili->find('a', 0)->innertext;
$video_remark = str_replace('\\', '', $video_remark);
$video_remark = str_replace('\'', '', $video_remark);
//新增数据
$video_totalrec = getsqltotal($tablename_b);
$video_maxindex = $video_totalrec + 1;
$video_objectId = $tablename_b."_".$video_maxindex;
$video_f_index = md5($video_remark.$source.$vid);
//视频结构体
$video_add_arr = array(
"objectId" => "'".$video_objectId."'",
"remark" => "'".$video_remark."'",
"video_url" => "'".$video_url."'", //视频详情页地址
"juji_url" => "'".$juji_url."'", //剧情地址
"main" => $main,
"cate_code" => "'".$cate_code."'",
"media" => "'".$mediaobjectId."'",
"`index`" => $video_maxindex,
"source" => "'".$source."'",
"source_id" => $vid,
"f_index" => "'".$video_f_index."'",
"lastuptdate" => "'".$lastuptdate."'",
"syncdate" => "NOW()"
);
var_dump($video_add_arr);
//如果媒体已存在,则不添加
/*$db_video_where = array(
"remark = '".$video_remark."'",
"source = '".$source."'",
"source_id = ".$vid
);
$db_video_arr = qrysql_94aw_video("objectId", $db_video_where);
if(!empty($db_video_arr)) {} else {*/
$db_videoid = insertInfo($tablename_b, $video_add_arr, null, 'ignore');
//}
}
}
//更新视频可用状态
function setVideoStatus($vid, $juji)
{
$videoUrl = getVideoRealUrl($vid, $juji);
if(!empty($videoUrl)) {
} else {
$tablename = '94aw_media';
$status = 'prepare'; //发布状态:编辑中
$mediaupt = array(
"`status` = '".$status."'"
);
$where = array(
"source_id = ".$vid
);
$uptres = updateInfo($tablename, $mediaupt, $where);
}
}
//入库:播放源
function importPlayUrl()
{
$tablename = '94aw_play';
//总记录数
$totalvideos = getsqltotal('94aw_video');
for($i = 1, $j = 1; $i <= ceil($totalvideos / 1000); $i++) {
//for($i = 1, $j = 1; $i <= 1; $i++) {
$k = $i*1000 + 1;
//$k = 1;
$where_qry = array(
"id >= ".$j,
"id <= ".$k
);
$j = $k;
var_dump($where_qry);
//先查询得到APP名称
$videoinfo_arr = qrysql_94aw_video('id', $where_qry);
if(!empty($videoinfo_arr)) {
foreach($videoinfo_arr as $videoinfo)
{
$vid = $videoinfo['source_id'];
$video = $videoinfo['video'];
$media = $videoinfo['media'];
$juji_url = $videoinfo['juji_url'];
$main = 0; //是否主要:0-否,1-是
$parse = 0; //是否解析:0-否,1-是
$source = '94aw';
$source_id = $vid;
if(!empty($juji_url)) $playUrl = getVideoRealUrlByVideo($juji_url);
if(!empty($playUrl)) {
//新增数据
$play_totalrec = getsqltotal($tablename);
$play_maxindex = $play_totalrec + 1;
$play_objectId = $tablename."_".$play_maxindex;
$f_index = md5($playUrl);
$play_add_arr = array(
"objectId" => "'".$play_objectId."'",
"playUrl" => "'".$playUrl."'",
"main" => $main,
"parse" => $parse,
"video" => "'".$video."'",
"media" => "'".$media."'",
"`index`" => "'".$play_maxindex."'",
"source" => "'".$source."'",
"source_id" => "'".$source_id."'",
"f_index" => "'".$f_index."'",
"createdAt" => "NOW()",
"updatedAt" => "NULL",
);
//如果媒体已存在,则不添加
/*$db_play_where = array(
"playUrl = '".$playUrl."'",
"video = '".$video."'",
"media = '".$media."'"
);
$db_play_arr = qrysql_94aw_play("objectId", $db_play_where);
if(!empty($db_play_arr)) {} else {*/
$db_playid = insertInfo($tablename, $play_add_arr, null, 'ignore');
//}
}
}
}
}
}
//动态获取视频URL地址
function getVideoRealUrl($vid, $juji)
{
global $apisever_url;
$url = $apisever_url . '/play/' . $vid.'/1/'.$juji.'.html';
getVideoRealUrlByVideo($url);
}
//传入URL地址
function getVideoRealUrlByVideo($two_url)
{
//视频真实URL地址
$videoUrl = '';
//=================================================================
//第一步:获取该电影的播放数据
$two_htmldata = curl_request($two_url);
// 新建DOM实例
$two_html = new simple_html_dom();
$two_html->load($two_htmldata);
//=================================================================
//第二步:获取该电影的视频地址
$three_url = $two_html->find('iframe', 0)->src;
$three_htmldata = curl_request($three_url);
// 新建DOM实例
$three_html = new simple_html_dom();
$three_html->load($three_htmldata);
if(strstr($three_html, '<iframe')) {
//内嵌其他外链接
$four_url = $three_html->find('iframe', 0)->src;
$videoUrl = $four_url;
}
return $videoUrl;
}
//二级页面处理
function getNextPageUrl($three_url)
{
$three_htmldata = curl_request($three_url);
// 新建DOM实例
$three_html = new simple_html_dom();
$three_html->load($three_htmldata);
//如果有JS段部分,则表示为不需要Flash播放器的视频
if(strstr($three_html, '<script type="text/javascript">')) {
//播放器代码
$playjs = $three_html->find('div[id=a1]', 0)->next_sibling();
//拆解
$play_arr = explode('\'', $playjs);
if(!empty($play_arr) && count($play_arr) > 1) {
//MP4资源地址
$videoUrl = $play_arr[1];
}
} else if(strstr($three_html, '<iframe')) {
//内嵌其他外链接
$four_url = $three_html->find('iframe', 0)->src;
$four_htmldata = curl_request($four_url);
// 新建DOM实例
$four_html = new simple_html_dom();
$four_html->load($four_htmldata);
//跳转后的域名主机
$url_arr = parse_url($four_url);
$sumbit_url = $url_arr['scheme'].'://'.$url_arr['host'].$url_arr['path'];
//隐藏文本框中的MD5值
//$hdMd5 = $four_html->find('div[id=error]', 0)->next_sibling()->value;
if(strstr($four_html, '<script type="text/javascript">')) {
if(!empty($four_html->find('div[id=error]', 0))) {
$youkujs = $four_html->find('div[id=error]', 0)->next_sibling()->next_sibling();
//拆解
$post_arr = explode('iqiyicip}', $youkujs);
if(!empty($post_arr)) {
$target_obj_url = "url.php";
$pp_arr = explode('"'.$target_obj_url.'", {', $post_arr[0]);
if(!empty($pp_arr) && count($pp_arr) > 1) {
$postjson = '{'.$pp_arr[1].'""}';
$postjson = str_replace('\'', '"', $postjson);
$returnCitySN = getLocalServerAreaIP();
if(!empty($returnCitySN)) $serveip = $returnCitySN['cip'];
else $serveip = getLocalServerOuterIP();
$postjson = str_replace('returnCitySN.cip', '"'.$serveip.'"', $postjson);
$eval_arr = explode('eval("', $post_arr[1]);
$md5_ascii = explode('");', $eval_arr[1]);
//ASCII转换
$md5_arr = explode('\x', trim($md5_ascii[0]));
$hdMd5 = '';
foreach($md5_arr as $mvr) {
$md5_ch = chr(hexdec($mvr));
$hdMd5 .= $md5_ch;
}
$hdMd5 = str_replace("$('#hdMd5').val('", "", $hdMd5);
$hdMd5 = str_replace("');", "", $hdMd5);
$hdMd5 = str_replace("\n", "", $hdMd5);
$postjson = str_replace('$("#hdMd5").val()', '"'.trim($hdMd5).'"', $postjson);
//echo $postjson;
$param_arr = json_decode($postjson, true);
//var_dump($param_arr);
//$sumbit_url = "https://apis.tianxianle.com/youku/url.php";
$sumbit_url .= $target_obj_url;
$http_url = $three_url;
//echo $sumbit_url;
/*
//请求内容:
$post_data = array(
"id" => '20743e2a02c06df62c6a6e7ba5f1985e',
"type" => 'ppbox',
"siteuser" => '',
"md5" => 'b930212adabd2584394c33e43257036e',
"hd" => '',
"lg" => '',
"cip" => '60.186.203.104'
);
//返回内容:
{
"msg": "200",
"ext": "xml",
"site": "pptvyun",
"url": "https:\/\/apis.tianxianle.com\/youku\/url.php?xml=20743e2a02c06df62c6a6e7ba5f1985e&md5=b930212adabd2584394c33e43257036e&type=ppbox&hd=cq&wap=0&siteuser=&lg=&sohuuid="
}
*/
list($return_code, $return_content) = curl_form($param_arr, $sumbit_url, $http_url);
$json_arr = json_decode($return_content, true);
//var_dump($json_arr);
//echo $json_arr['url'];
if(!empty($json_arr) && array_key_exists('url', $json_arr) && strstr($json_arr['url'], 'xml=')) {
$seven_htmldata = curl_request($json_arr['url']);
echo 'seven_htmldata = '.$seven_htmldata;
//解析返回的XML结构体
//header("Content-type: text/xml");
$postStr = str_replace('<?xml version="1.0" encoding="utf-8"?>', '', $seven_htmldata);
//$postStr = '<ckplayer> <Name> <![CDATA[解析插件 Ver2.0]]></Name> <flashvars>{f->https://apis.tianxianle.com/youku/url.php?[$pat]}{a->xml=20743e2a02c06df62c6a6e7ba5f1985e&type=ppbox&wap=0&siteuser=&md5=b930212adabd2584394c33e43257036e&hd=gq}</flashvars><video><file><![CDATA[http://58.220.11.143/w/20743e2a02c06df62c6a6e7ba5f1985e.mp4?type=ppbox.launcher&key=cc8ee106332ffc70e3b53399b8b3880e]]></file><size>0</size><seconds>0</seconds></video></ckplayer>';
$xml = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
//print_r($xml);
$videoUrl = $xml->children()[2]->children()[0];
}
}
}
}
}
}
}
//媒体地区清单
function import_media_area()
{
$tablename = '94aw_marea';
$qry_marea = qrysql_94aw_areabymedia();
foreach($qry_marea as $marea)
{
//处理
$marea_name_arr = explode('/', rawurldecode($marea['media_area']));
foreach($marea_name_arr as $marea_name)
{
$mareaadd_arr = array(
"marea_name" => "'".trim($marea_name)."'", //类别名
);
$db_mareaid = insertInfo($tablename, $mareaadd_arr, null, 'yes');
}
}
}
//媒体类型清单
function import_media_type()
{
$tablename = '94aw_mtype';
$qry_mtype = qrysql_94aw_typebymedia();
foreach($qry_mtype as $mtype)
{
//处理
$mtype_name_arr = explode('/', rawurldecode($mtype['mtype']));
foreach($mtype_name_arr as $mtype_name)
{
$mtypeadd_arr = array(
"mtype_name" => "'".trim($mtype_name)."'", //类别名
);
$db_mtypeid = insertInfo($tablename, $mtypeadd_arr, null, 'yes');
}
}
}
//媒体导演清单
function import_media_director()
{
$tablename = '94aw_mdirector';
$qry_mdirector = qrysql_94aw_directorbymedia();
foreach($qry_mdirector as $mdirector)
{
//处理
$mdirector_name_arr = explode('/', rawurldecode($mdirector['director']));
foreach($mdirector_name_arr as $mdirector_name)
{
$mdirectoradd_arr = array(
"mdirector_name" => "'".trim($mdirector_name)."'", //类别名
);
$db_mdirectorid = insertInfo($tablename, $mdirectoradd_arr, null, 'yes');
}
}
}
//媒体演员清单
function import_media_playactor()
{
$tablename = '94aw_mplayactor';
$qry_mplayactor = qrysql_94aw_playactorbymedia();
foreach($qry_mplayactor as $mplayactor)
{
//处理
$mplayactor_name_arr = explode('/', rawurldecode($mplayactor['playactor']));
foreach($mplayactor_name_arr as $mplayactor_name)
{
$mplayactoradd_arr = array(
"mplayactor_name" => "'".trim($mplayactor_name)."'", //类别名
);
$db_mplayactorid = insertInfo($tablename, $mplayactoradd_arr, null, 'yes');
}
}
}