<?php <br />
<br>
<br>
// 防盗链<br>
$Anti_theft = False; // 是否开启防盗链 True 为开启,False 为关闭。<br>
<br>
// 需要输出那些分类的,仅在直接调用php的情况下有效。<br>
//不需要输出,直接注释掉或删除那一行。<br>
$p_olist = array(<br>
84=>"纪录片",<br>
85=>"综艺",<br>
96=>"电影",<br>
97=>"电视剧",<br>
100=>"动漫"<br>
);<br>
$p_showlist = array(<br>
86=>"娱乐",<br>
87=>"教育",<br>
88=>"旅游",<br>
89=>"时尚",<br>
90=>"母婴",<br>
91=>"资讯",<br>
92=>"原创",<br>
94=>"搞笑",<br>
98=>"体育",<br>
99=>"游戏",<br>
102=>"广告",<br>
103=>"生活",<br>
104=>"汽车",<br>
105=>"科技"<br>
);<br>
<br>
<br>
//好了,下面的东西就不要乱动了,动了后果自负。<br>
<br>
error_reporting(0);<br>
header("Content-type: text/xml; charset=utf-8");<br>
<br>
//获得当前页面的URL<br>
$fname = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];<br>
<br>
if($Anti_theft == True){<br>
$refer = $_SERVER["HTTP_REFERER"];<br>
preg_match('/(.*):\/\/(.*)\//imsU',$refer,$refer);<br>
if ($_SERVER['SERVER_NAME'] != $refer[2]){<br>
$xml.= '<list><m></m></list>';<br>
echo $xml;<br>
exit;<br>
}<br>
<br>
}<br>
<br>
<br>
if (isset($_GET['show'])){<br>
// 展示SHOW所有视屏 //<br>
$xml = get_show_page($_GET['show']);<br>
} elseif (isset($_GET['movie_show'])) {<br>
// 如果传来的是 电影页面。<br>
$xml = get_movie_show($_GET['movie_show']);<br>
} elseif (isset($_GET['olist']) and isset($_GET['showlist'])){<br>
// 同时传来 olist 与 showlist 时,拒绝输出。//<br>
echo "你是想叫我闹哪个?";<br>
} elseif ( isset($_GET['olist']) ){<br>
// 处理 olist 列表 //<br>
if (isset($_GET['page'])) {<br>
// 传来页数,输出该页内容 //<br>
$xml = get_olist_page($_GET['olist'],$_GET['page']);<br>
} else {<br>
// 没有传来页数,则输出页数。//<br>
$xml = get_list_page("olist",$_GET['olist']);<br>
}<br>
} elseif ( isset($_GET['showlist']) ){<br>
// 处理 showlist 列表<br>
if (isset($_GET['page'])) {<br>
// 传来页数,输出该页内容<br>
$xml = get_showlist_page($_GET['showlist'],page);<br>
} else {<br>
// 没有传来页数,则输出页数。 //<br>
$xml = get_list_page("showlist",$_GET['showlist']);<br>
}<br>
} else {<br>
// 没有传来任何值,输出分类列表。<br>
$xml = get_vlist();<br>
}<br>
<br>
// 两头附加上 <list><br>
$xml ="<list>\n" . $xml . '</list>';<br>
<br>
// 如果不为 调试模式 ,则正常输出。<br>
if(!isset($_GET['debug'])){<br>
echo $xml;<br>
}<br>
<br>
<br>
// 以下 获取并产生相关的列表<br>
<br>
//输出所有支持的分类列表<br>
function get_vlist() {<br>
global $fname;<br>
global $p_olist;<br>
global $p_showlist;<br>
$list = '';<br>
foreach($p_olist as $key=>$id)<br>
{<br>
$list.='<m></m>'."\n";<br>
}<br>
$list.='<m></m>'."\n";<br>
foreach($p_showlist as $key=>$id)<br>
{<br>
$list.='<m></m>'."\n";<br>
}<br>
return $list;<br>
}<br>
//获取分页数量。<br>
function get_list_page($v_name,$v_id) {<br>
global $fname;<br>
$list = '';<br>
if($v_name == "olist"){<br>
$url="http://www.youku.com/v_olist/c_" . $v_id . ".html";<br>
} elseif($v_name == "showlist") {<br>
$url="http://www.youku.com/v_showlist/c" . $v_id . ".html";<br>
}<br>
$url=g_contents($url);<br>
preg_match('/<li>...(.*)</li>
<li><a>(.*)/imsU',$url,$page);<br>
$page=$page[4];<br>
if ($page == ""){<br>
preg_match('/<ul>(.*)/imsU',$url,$page);<br>
preg_match_all('/charset="(.*)">(.*)/imsU',$page[1],$page);<br>
$page = end($page[2]);<br>
}<br>
if($page!="")for($i=1;$i
$list.='<m></m>'."\n";<br>
}<br>
return $list;<br>
}<br>
<br>
<br>
// 获取指定 olist 某页的所有视频<br>
function get_olist_page($v_id,$page){<br>
global $fname;<br>
if ($v_id == 96){<br>
return get_olist_movie_page($page);<br>
}<br>
// http://www.youku.com/v_olist/c_85_p_4.html<br>
$url='http://www.youku.com/v_olist/c_' . $v_id . '_p_'.$page.'.html';<br>
$url=g_contents($url);<br>
$list='';<br>
preg_match('/<!-- movies list begin -->(.*)<!-- vdata_list end -->/imsU',$url,$arr);<br>
preg_match_all('|<li>
<a></a>
//print_r($id);<br>
$ids=$id[1];<br>
$title=$id[2];<br>
foreach($ids as $k=>$id ){<br>
$list.='<m></m>'."\n";<br>
}<br>
return $list;<br>
}<br>
<br>
// 针对 电影页面,特别制作。<br>
<br>
function get_olist_movie_page($page){<br>
global $fname;<br>
$url='http://www.youku.com/v_olist/c_96_p_'.$page.'.html';<br>
$url=g_contents($url);<br>
$list='';<br>
preg_match('/<!-- movies list begin -->(.*)<!-- vdata_list end -->/imsU',$url,$arr);<br>
preg_match_all('|</li>
<li>
<a> <span>(.*)(.*)(.*)|imsU',$arr[1],$id);<br>
$e_id=$id[1];<br>
$e_title=$id[2];<br>
$e_Actor=$id[5];<br>
$e_type=$id[7];<br>
$e_free=$id[9];<br>
foreach($e_id as $k=>$e_id ){<br>
preg_match_all('|>(.*)</span></a>|imsU',$e_Actor[$k],$Actors);<br>
$Actors = $Actors[1];<br>
//print_r($Actors);<br>
$Actor = '';<br>
foreach($Actors as $key=>$k_id ){<br>
if ($key != 0){<br>
$Actor.= ",";<br>
}<br>
$Actor.= $k_id;<br>
}<br>
$e_typeB = "";<br>
if($e_type[$k] != "正片"){<br>
$e_typeB = '[预]';<br>
}<br>
if($e_free[$k] == "今日新增:"){<br>
$list.='<m></m>'."\n";<br>
}<br>
}<br>
return $list;<br>
}<br>
<br>
// 输出电影页面细节。<br>
<br>
function get_movie_show($show_id){<br>
$url='http://www.youku.com/show_page/id_' . $show_id . '.html';<br>
$url=g_contents($url);<br>
$list='';<br>
preg_match("|videoUrl:'http://v.youku.com/v_show/id_(\w{13}).html'(.*)><em>播放预告片|imsU",$url,$e_notice);<br>
preg_match('|href="http://v.youku.com/v_show/id_(\w{13}).html" target="_blank"><em>播放正片|imsU',$url,$e_formal);<br>
preg_match_all('|http:\/\/v.youku.com\/v_show\/id_(\w{13}).html(.*)>(.*)|imsU',$url,$id);<br>
if($e_formal[1] != ""){$list.='<m></m>'."\n";}<br>
if($e_notice[1] != ""){$list.='<m></m>'."\n";}<br>
//print_r($id);<br>
$e_title=$id[3];<br>
foreach($e_title as $key=>$k_id ){<br>
if($k_id != ""){<br>
preg_match('//imsU',$k_id,$ids);<br>
if($ids[1] == ""){<br>
$list.='<m></m>'."\n";<br>
}<br>
}<br>
}<br>
return $list;<br>
}<br>
<br>
<br>
<br>
//输出视频列表<br>
function get_show_page($show_id){<br>
$url='http://www.youku.com/show_page/id_'.$show_id.'.html';<br>
$url=g_contents($url);<br>
$list='';<br>
preg_match('/id="zySeriesTab">(.*)/imsU',$url,$arr);<br>
preg_match_all('/<li>
//print_r($id);<br>
if($id[1][0] == ""){$id[1][0] = "reload_1";}<br>
foreach ($id[1] as $reload)<br>
{<br>
$url="http://www.youku.com/show_episode/id_" . $show_id . ".html?dt=json&divid=" . $reload . "&__rt=1&__ro=" . $reload;<br>
$url=g_contents($url);<br>
//preg_match_all('/href="http:\/\/v.youku.com\/v_show\/id_(.*).html/',$url,$v_id);<br>
//preg_match_all('/target="_blank">(.*)/',$url,$v_name);<br>
preg_match_all('|href="http://v.youku.com/v_show/id_(.*).html" t(.*)_blank">(.*)</em></em>
</li>
</ul></a></li>|',$url,$v_name);<br>
$v_id = $v_name[1];<br>
$v_name = $v_name[3];<br>
foreach($v_id as $key=>$id)<br>
{<br>
//echo $v_name[$key].'=>'.$value . "\n";<br>
$list.='<m></m>'."\n";<br>
}<br>
}<br>
return $list;<br>
}<br>
<br>
// 输出 showlist 的视频列表<br>
function get_showlist_page($show_id,$page){<br>
$url='http://www.youku.com/v_showlist/c' . $show_id . 'p' . $page . '.html';<br>
$url=g_contents($url);<br>
$list='';<br>
preg_match('/<!-- movies list begin -->(.*)<!--vdata_list end-->/imsU',$url,$arr);<br>
preg_match_all('|<li><a>|imsU',$arr[1],$id);<br>
//print_r($id);<br>
$v_id = $id[1];<br>
$v_title = $id[2];<br>
foreach($v_id as $key=>$id)<br>
{<br>
//echo $v_name[$key].'=>'.$value . "\n";<br>
$list.='<m></m>'."\n";<br>
}<br>
return $list;<br>
}<br>
<br>
//一些共用的处理参数。<br>
<br>
// 转义特殊符号。<br>
function str_escape($str_subject) {<br>
$arr_search = array('','&','\'','"');<br>
$arr_replace = array('','&',''','"');<br>
$str = str_ireplace($arr_search,$arr_replace,$str_subject);<br>
return $str;<br>
}<br>
<br>
//伪造用户User Agent 读取网页内容。<br>
// 可用 file_get_contents(filename); 代替。<br>
<br>
function g_contents($url) {<br>
$user_agent = $_SERVER['HTTP_USER_AGENT'];<br>
$ch = curl_init();<br>
curl_setopt($ch, CURLOPT_URL, $url);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);<br>
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);<br>
@ $data = curl_exec($ch);<br>
curl_close($ch);<br>
return $data;<br>
}<br>
?></a></li></list>
AD:真正免费,域名+虚机+企业邮箱=0元