欢迎来到福编程网,本站提供各种互联网专业知识!

56.com视频采集接口程序(PHP)

发布时间:2007-09-22 作者: 来源:转载
楼下也有一个所谓56站程序的,忽悠到了极致,不喜欢被人忽悠的,还是自己做个站吧!我给大家个采集接口,你爱自己采集可以用自己的FLASH播放器直接播放56.com的flv吧!不用帮人家做免费广告那么傻了!复制代码代码如下:json.php复制代码代码如下:
楼下也有一个所谓56站程序的,忽悠到了极致,不喜欢被人忽悠的,还是自己做个站吧!
我给大家个采集接口,你爱自己采集可以用自己的FLASH播放器直接播放56.com的flv吧!不用帮人家做免费广告那么傻了!

复制代码 代码如下:
$url="http://www.56.com/u75/v_MTkwMTIwMjQ.html";
$html=@file_get_contents($url);
preg_match_all("/var_oFlv_o='([S|s]+)'/isU",$html,$matches);
$o=decode56($matches[1][0]);
include_once"json.php";//当php没有配置支持json的时候有用
$o=str_replace("'",'"',$o);
$o=json_decode($o);
//print_r($o);
$swf="http://www.56.com/n_".str_replace(":88","",str_replace(".56.com","",$o->img_host)).
"_/".str_replace(".56.com","",$o->URL_host).
"_/".$o->URL_pURL.
"_/".$o->URL_sURL.
"_/".$o->user_id.
"_/".$o->URL_URLid.
"_/".$o->totaltime.
"_/".$o->effectID.
"_/".$o->id.".swf";
$flv="http://hot-chinacache.56.com/flvdownload/".$o->URL_pURL.
"/".$o->URL_sURL.
"/".$o->user_id.
"@56.com_56flv_".$o->URL_URLid.".flv";
echo"FLASH文件路径:".$swf;
echo"

";
echo"FLV文件路径:".$flv;

$de=0;
functiondecode56($str){
global$de;
$c1="";
$c2="";
$c3="";
$c4="";
$c5=array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
$c6=charCodeAt($str,0);
$c7="";
$i="";
$len="";
$out="";
if(!$de){
$de=1;
$c7=decode56($str);
$str=substr($c7,$c6);
}
$len=strlen($str);
$i=1;
$out="";
while($i<$len){
do{
$c1=$c5[charCodeAt($str,$i++)&0xff];
}
while($i<$len&&$c1==-1);
if($c1==-1)break;
do{
$c2=$c5[charCodeAt($str,$i++)&0xff];
}
while($i<$len&&$c2==-1);
if($c2==-1)break;
$out.=chr(($c1<<2)|(($c2&0x30)>>4));
do{
$c3=charCodeAt($str,$i++)&0xff;
if($c3==61)return$out;
$c3=$c5[$c3];
}
while($i<$len&&$c3==-1);
if($c3==-1)break;
$out.=chr((($c2&0XF)<<4)|(($c3&0x3C)>>2));
do{
$c4=charCodeAt($str,$i++)&0xff;
if($c4==61)return$out;
$c4=$c5[$c4];
}
while($i<$len&&$c4==-1);
if($c4==-1)break;
$out.=chr((($c3&0x03)<<6)|$c4);
}
return$out;
}

functioncharCodeAt($str,$i){
returnord(substr($str,$i,1));
}

//该程序仅为技术交流,交流可加QQ群:1714987
?>

json.php
复制代码 代码如下:
define('HTML_AJAX_JSON_SLICE',1);
define('HTML_AJAX_JSON_IN_STR',2);
define('HTML_AJAX_JSON_IN_ARR',4);
define('HTML_AJAX_JSON_IN_OBJ',8);
define('HTML_AJAX_JSON_IN_CMT',16);
define('HTML_AJAX_JSON_LOOSE_TYPE',10);
define('HTML_AJAX_JSON_STRICT_TYPE',11);

classHTML_AJAX_JSON
{
functionHTML_AJAX_JSON($use=HTML_AJAX_JSON_STRICT_TYPE)
{
$this->use=$use;
}

functionencode($var)
{
switch(gettype($var)){
case'boolean':
return$var?'true':'false';

case'NULL':
return'null';

case'integer':
returnsprintf('%d',$var);

case'double':
case'float':
returnsprintf('%f',$var);

case'string'://STRINGSAREEXPECTEDTOBEINASCIIORUTF-8FORMAT
$ascii='';
$strlen_var=strlen($var);

for($c=0;$c<$strlen_var;$c++){

$ord_var_c=ord($var{$c});

if($ord_var_c==0x08){
$ascii.='b';

}elseif($ord_var_c==0x09){
$ascii.='t';

}elseif($ord_var_c==0x0A){
$ascii.='n';

}elseif($ord_var_c==0x0C){
$ascii.='f';

}elseif($ord_var_c==0x0D){
$ascii.='r';

}elseif(($ord_var_c==0x22)||($ord_var_c==0x2F)||($ord_var_c==0x5C)){
$ascii.=''.$var{$c};//doublequote,slash,slosh

}elseif(($ord_var_c>=0x20)&&($ord_var_c<=0x7F)){
//charactersU-00000000-U-0000007F(sameasASCII)
$ascii.=$var{$c};//mostnormalASCIIchars

}elseif(($ord_var_c&0xE0)==0xC0){
//charactersU-00000080-U-000007FF,mask110XXXXX,seehttp://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char=pack('C*',$ord_var_c,ord($var{$c+1}));$c+=1;
$ascii.=sprintf('u%04s',bin2hex(mb_convert_encoding($char,'UTF-16','UTF-8')));

}elseif(($ord_var_c&0xF0)==0xE0){
//charactersU-00000800-U-0000FFFF,mask1110XXXX,seehttp://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char=pack('C*',$ord_var_c,ord($var{$c+1}),ord($var{$c+2}));$c+=2;
$ascii.=sprintf('u%04s',bin2hex(mb_convert_encoding($char,'UTF-16','UTF-8')));

}elseif(($ord_var_c&0xF8)==0xF0){
//charactersU-00010000-U-001FFFFF,mask11110XXX,seehttp://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char=pack('C*',$ord_var_c,ord($var{$c+1}),ord($var{$c+2}),ord($var{$c+3}));$c+=3;
$ascii.=sprintf('u%04s',bin2hex(mb_convert_encoding($char,'UTF-16','UTF-8')));

}elseif(($ord_var_c&0xFC)==0xF8){
//charactersU-00200000-U-03FFFFFF,mask111110XX,seehttp://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char=pack('C*',$ord_var_c,ord($var{$c+1}),ord($var{$c+2}),ord($var{$c+3}),ord($var{$c+4}));$c+=4;
$ascii.=sprintf('u%04s',bin2hex(mb_convert_encoding($char,'UTF-16','UTF-8')));

}elseif(($ord_var_c&0xFE)==0xFC){
//charactersU-04000000-U-7FFFFFFF,mask1111110X,seehttp://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char=pack('C*',$ord_var_c,ord($var{$c+1}),ord($var{$c+2}),ord($var{$c+3}),ord($var{$c+4}),ord($var{$c+5}));$c+=5;
$ascii.=sprintf('u%04s',bin2hex(mb_convert_encoding($char,'UTF-16','UTF-8')));
}
}

returnsprintf('"%s"',$ascii);

case'array':
if(is_array($var)&&(array_keys($var)!==range(0,sizeof($var)-1)))
returnsprintf('{%s}',join(',',array_map(array($this,'name_value'),array_keys($var),array_values($var))));

returnsprintf('[%s]',join(',',array_map(array($this,'encode'),$var)));

case'object':
$vars=get_object_vars($var);
returnsprintf('{%s}',join(',',array_map(array($this,'name_value'),array_keys($vars),array_values($vars))));

default:
return'';
}
}

functionname_value($name,$value)
{
return(sprintf("%s:%s",$this->encode(strval($name)),$this->encode($value)));
}

functionreduce_string($str)
{
$str=preg_replace('#^s*//(.+)$#m','',$str);//eliminatesinglelinecommentsin'//...'form
$str=preg_replace('#^s*/*(.+)*/#Us','',$str);//eliminatemulti-linecommentsin'/*...*/'form,atstartofstring
$str=preg_replace('#/*(.+)*/s*$#Us','',$str);//eliminatemulti-linecommentsin'/*...*/'form,atendofstring
$str=trim($str);//eliminateextraneousspace

return$str;
}

functiondecode($str)
{
$str=$this->reduce_string($str);

switch(strtolower($str)){
case'true':
returntrue;

case'false':
returnfalse;

case'null':
returnnull;

default:
if(is_numeric($str)){
return((float)$str==(integer)$str)
?(integer)$str
:(float)$str;

}elseif(preg_match('/^".+"$/s',$str)||preg_match('/^'.+'$/s',$str)){
$delim=substr($str,0,1);
$chrs=substr($str,1,-1);
$utf8='';
$strlen_chrs=strlen($chrs);

for($c=0;$c<$strlen_chrs;$c++){

$substr_chrs_c_2=substr($chrs,$c,2);
$ord_chrs_c=ord($chrs{$c});

if($substr_chrs_c_2=='b'){
$utf8.=chr(0x08);$c+=1;

}elseif($substr_chrs_c_2=='t'){
$utf8.=chr(0x09);$c+=1;

}elseif($substr_chrs_c_2=='n'){
$utf8.=chr(0x0A);$c+=1;

}elseif($substr_chrs_c_2=='f'){
$utf8.=chr(0x0C);$c+=1;

}elseif($substr_chrs_c_2=='r'){
$utf8.=chr(0x0D);$c+=1;

}elseif(($delim=='"')&&(($substr_chrs_c_2=='"')||($substr_chrs_c_2=='')||($substr_chrs_c_2=='/'))){
$utf8.=$chrs{++$c};

}elseif(($delim=="'")&&(($substr_chrs_c_2==''')||($substr_chrs_c_2=='')||($substr_chrs_c_2=='/'))){
$utf8.=$chrs{++$c};

}elseif(preg_match('/u[0-9A-F]{4}/i',substr($chrs,$c,6))){//single,escapedunicodecharacter
$utf16=chr(hexdec(substr($chrs,($c+2),2))).chr(hexdec(substr($chrs,($c+4),2)));
$utf8.=mb_convert_encoding($utf16,'UTF-8','UTF-16');
$c+=5;

}elseif(($ord_chrs_c>=0x20)&&($ord_chrs_c<=0x7F)){
$utf8.=$chrs{$c};

}elseif(($ord_chrs_c&0xE0)==0xC0){
$utf8.=substr($chrs,$c,2);$c+=1;

}elseif(($ord_chrs_c&0xF0)==0xE0){
$utf8.=substr($chrs,$c,3);$c+=2;

}elseif(($ord_chrs_c&0xF8)==0xF0){
$utf8.=substr($chrs,$c,4);$c+=3;

}elseif(($ord_chrs_c&0xFC)==0xF8){
$utf8.=substr($chrs,$c,5);$c+=4;

}elseif(($ord_chrs_c&0xFE)==0xFC){
$utf8.=substr($chrs,$c,6);$c+=5;
}
}
return$utf8;

}elseif(preg_match('/^[.*]$/s',$str)||preg_match('/^{.*}$/s',$str)){

if($str{0}=='['){
$stk=array(HTML_AJAX_JSON_IN_ARR);
$arr=array();
}else{
if($this->use==HTML_AJAX_JSON_LOOSE_TYPE){
$stk=array(HTML_AJAX_JSON_IN_OBJ);
$obj=array();
}else{
$stk=array(HTML_AJAX_JSON_IN_OBJ);
$obj=newstdClass();
}
}

array_push($stk,array('what'=>HTML_AJAX_JSON_SLICE,'where'=>0,'delim'=>false));
$chrs=substr($str,1,-1);
$chrs=$this->reduce_string($chrs);

if($chrs==''){
if(reset($stk)==HTML_AJAX_JSON_IN_ARR){
return$arr;

}else{
return$obj;

}
}

$strlen_chrs=strlen($chrs);

for($c=0;$c<=$strlen_chrs;$c++){

$top=end($stk);
$substr_chrs_c_2=substr($chrs,$c,2);

if(($c==$strlen_chrs)||(($chrs{$c}==',')&&($top['what']==HTML_AJAX_JSON_SLICE))){
$slice=substr($chrs,$top['where'],($c-$top['where']));
array_push($stk,array('what'=>HTML_AJAX_JSON_SLICE,'where'=>($c+1),'delim'=>false));

if(reset($stk)==HTML_AJAX_JSON_IN_ARR){//weareinanarray,sojustpushanelementontothestack
array_push($arr,$this->decode($slice));

}elseif(reset($stk)==HTML_AJAX_JSON_IN_OBJ){//weareinanobject,sofigureoutthepropertynameandsetanelementinanassociativearray,fornow
if(preg_match('/^s*(["'].*[^]["'])s*:s*(S.*),?$/Uis',$slice,$parts)){//"name":valuepair
$key=$this->decode($parts[1]);
$val=$this->decode($parts[2]);

if($this->use==HTML_AJAX_JSON_LOOSE_TYPE){
$obj[$key]=$val;
}else{
$obj->$key=$val;
}
}elseif(preg_match('/^s*(w+)s*:s*(S.*),?$/Uis',$slice,$parts)){//name:valuepair,wherenameisunquoted
$key=$parts[1];
$val=$this->decode($parts[2]);

if($this->use==HTML_AJAX_JSON_LOOSE_TYPE){
$obj[$key]=$val;
}else{
$obj->$key=$val;
}
}

}

}elseif((($chrs{$c}=='"')||($chrs{$c}=="'"))&&($top['what']!=HTML_AJAX_JSON_IN_STR)){//foundaquote,andwearenotinsideastring
array_push($stk,array('what'=>HTML_AJAX_JSON_IN_STR,'where'=>$c,'delim'=>$chrs{$c}));
//print("Foundstartofstringat{$c}n");

}elseif(($chrs{$c}==$top['delim'])&&($top['what']==HTML_AJAX_JSON_IN_STR)&&(($chrs{$c-1}!="")||($chrs{$c-1}==""&&$chrs{$c-2}==""))){//foundaquote,we'reinastring,andit'snotescaped
array_pop($stk);
//print("Foundendofstringat{$c}:".substr($chrs,$top['where'],(1+1+$c-$top['where']))."n");

}elseif(($chrs{$c}=='[')&&in_array($top['what'],array(HTML_AJAX_JSON_SLICE,HTML_AJAX_JSON_IN_ARR,HTML_AJAX_JSON_IN_OBJ))){//foundaleft-bracket,andweareinanarray,object,orslice
array_push($stk,array('what'=>HTML_AJAX_JSON_IN_ARR,'where'=>$c,'delim'=>false));
//print("Foundstartofarrayat{$c}n");

}elseif(($chrs{$c}==']')&&($top['what']==HTML_AJAX_JSON_IN_ARR)){//foundaright-bracket,andwe'reinanarray
array_pop($stk);
//print("Foundendofarrayat{$c}:".substr($chrs,$top['where'],(1+$c-$top['where']))."n");

}elseif(($chrs{$c}=='{')&&in_array($top['what'],array(HTML_AJAX_JSON_SLICE,HTML_AJAX_JSON_IN_ARR,HTML_AJAX_JSON_IN_OBJ))){//foundaleft-brace,andweareinanarray,object,orslice
array_push($stk,array('what'=>HTML_AJAX_JSON_IN_OBJ,'where'=>$c,'delim'=>false));
//print("Foundstartofobjectat{$c}n");

}elseif(($chrs{$c}=='}')&&($top['what']==HTML_AJAX_JSON_IN_OBJ)){//foundaright-brace,andwe'reinanobject
array_pop($stk);
//print("Foundendofobjectat{$c}:".substr($chrs,$top['where'],(1+$c-$top['where']))."n");

}elseif(($substr_chrs_c_2=='/*')&&in_array($top['what'],array(HTML_AJAX_JSON_SLICE,HTML_AJAX_JSON_IN_ARR,HTML_AJAX_JSON_IN_OBJ))){//foundacommentstart,andweareinanarray,object,orslice
array_push($stk,array('what'=>HTML_AJAX_JSON_IN_CMT,'where'=>$c,'delim'=>false));
$c++;
//print("Foundstartofcommentat{$c}n");

}elseif(($substr_chrs_c_2=='*/')&&($top['what']==HTML_AJAX_JSON_IN_CMT)){//foundacommentend,andwe'reinonenow
array_pop($stk);
$c++;

for($i=$top['where'];$i<=$c;$i++)
$chrs=substr_replace($chrs,'',$i,1);

//print("Foundendofcommentat{$c}:".substr($chrs,$top['where'],(1+$c-$top['where']))."n");

}

}

if(reset($stk)==HTML_AJAX_JSON_IN_ARR){
return$arr;

}elseif(reset($stk)==HTML_AJAX_JSON_IN_OBJ){
return$obj;

}
}
}
}
}

if(!function_exists("json_encode")||!function_exists("json_decode")){
include_once"json.php";
functionjson_encode($data){
$json=newHTML_AJAX_JSON();
return$json->encode($data);
}
functionjson_decode($data){
$json=newHTML_AJAX_JSON();
return$json->decode($data);
}
}
?>

相关推荐