56.com视频采集接口程序(PHP)
56.com视频采集接口程序(PHP)
发布时间:2016-12-29 来源:查字典编辑
摘要:楼下也有一个所谓56站程序的,忽悠到了极致,不喜欢被人忽悠的,还是自己做个站吧!我给大家个采集接口,你爱自己采集可以用自己的FLASH播放器...

楼下也有一个所谓56站程序的,忽悠到了极致,不喜欢被人忽悠的,还是自己做个站吧!

我给大家个采集接口,你爱自己采集可以用自己的FLASH播放器直接播放56.com的flv吧!不用帮人家做免费广告那么傻了!

复制代码 代码如下:

<?php

$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"<br>";

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

复制代码 代码如下:

<?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);

}

}

?>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类