> 백엔드 개발 > PHP 튜토리얼 > 56com 비디오 수집 인터페이스 프로그램 PHP

56com 비디오 수집 인터페이스 프로그램 PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-29 08:37:09
원래의
943명이 탐색했습니다.

아래층에는 소위 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_URL .
"_/" . $o->totaltime .
"_/" . . $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
echo "FLASH 파일 경로: " . $swf; ;";
echo "FLV 파일 경로: " . $flv;
$de = 0
function decode56($str) {
global $de; 🎜> $c1 = "" ;
$c2 = "";
$c3 = "";
$c4 = ""
$c5 = 배열(-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 = ""; len = "";
$out = "";
if(!$de) {
$de = 1
$c7 = decode56($str); substr($c7, $c6 );
}
$len = strlen($str)
$i = 1;
$out = ""
; $len) {
do {
$c1 = $c5[charCodeAt($str, $i ) & 0xff]
do {
while($i < $len && $c1 == -1);
if ($c1 == -1) break;
do {
$c2 = $c5[charCodeAt($str, $i ) & 0xff];
        동안에 ($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);
    }
    $out을 반환합니다.
}
function charCodeAt($str, $i){
    return ord(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);
클래스 HTML_AJAX_JSON
{
    함수 HTML_AJAX_JSON($use=HTML_AJAX_JSON_STRICT_TYPE)
    {
        $this->use = $use;
    }
    함수 인코딩($var)
    {
        switch(gettype($var)) {
            case 'boolean':
               return $var ? '참' : '거짓';
            case 'NULL':
                'null'을 반환;
            case '정수':
               return sprintf('%d', $var);
            case 'double':
            case 'float':
               return sprintf('%f', $var);
            case '문자열': // 문자열은 ASCII 또는 UTF-8 형식이어야 합니다.
               $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)) {
                      $as cii .= '\'.$var{$c}; // 큰따옴표, 슬래시, 슬로시
                   } elseif(($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)) {
                      // 문자 U-00000000 - U-0000007F(ASCII와 동일) )
                      $ascii .= $var{$c}; // 가장 일반적인 ASCII 문자
                  } elseif(($ord_var_c & 0xE0) == 0xC0) {
                    // 문자 U-00000080 - U-00 0007FF, 마스크 110XXXXX, http://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 s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
                  } elseif(($ord_var_c & 0xF0) == 0xE0) {
                    // 문자 U-00000800 - U-0000FFFF, 마스크 111 0XXXX, http://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 s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
                  } elseif(($ord_var_c & 0xF8) == 0xF0) {
                    // 문자 U-00010000 - U-001FFFFF, 마스크 111 10XXX, http://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 s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
                  } elseif(($ord_var_c & 0xFC) == 0xF8) {
                    // 문자 U-00200000 - U-03FFFFFF, 마스크 11111 0XX, http://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 s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
                    } elseif(($ord_var_c & 0xFE) == 0xFC) {
                      // 문자 U-04000000 - U-7FFFFFFFF, 마스크 1111110X, http://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}), 단어($var{$c 4}), 단어($var{$c 5})); $c =5;
                      $ascii .= sprintf('u s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
                   }
               }
               return sprintf('"%s"', $ascii); <{ %s}', join(',', array_map(array($this, 'name_value'), array_keys($var), array_values($var))));
               return sprintf('[%s]', join(',', array_map(array($this, 'encode'), $var)));
            사례 '객체':
               $vars = get_object_vars($var);
               return sprintf('{%s}', join(',', array_map(array($this, 'name_value'), array_keys($vars), array_values($vars))));
            기본값:
               반환 '';
       }
    }
    함수 이름 값($name, $value)
    {
        return(sprintf("%s:%s", $this->encode(strval($name) )), $this->encode($value)));
    }
    function reduce_string($str)
    {
        $str = preg_replace('#^s*//(. )$#m', '', $str); // '// ...' 양식
        $str = preg_replace('#^s*/*(. )*/#Us', '', $str);에서 한 줄 주석을 제거합니다. // 문자열
의 시작 부분에서 '/*... */' 형식의 여러 줄 주석을 제거합니다.
        $str = preg_replace('#/*(. )*/s*$#Us', '', $str); // 문자열 끝에서 '/* ... */' 형식의 여러 줄 주석을 제거합니다.
        $str = trim($str); // 불필요한 공백 제거
        return $str;
    }
    함수 디코드($str)
    {
        $str = $this->reduce_string($str);
        switch(strtolower($str)) {
            case 'true':
               return true;
            대문자 'false':
               false를 반환;
            case 'null':
                반환 null; >          ? (정수)$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))) { // 단일 이스케이프된 유니코드 문자
                          $ 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 = 배열(HTML_AJAX_JSON_IN_OBJ);
                           $obj = array();
                      } else {
                        $stk = array(HTML_AJAX_JSON_IN_OBJ);
                           $obj = new stdClass();
                     }
                  }
                 array_push($stk, array('what' => HTML_AJAX_JSON_SLICE, '어디' =>  0, '삭제' =>  false)
                   $chrs = substr($str, 1, -1);
                   $chrs = $this->reduce_string($chrs); >          return $arr;
                      } else {
                         $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))) {
                          $슬라이스 = 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) { // 배열에 있으므로 요소를 스택에 푸시하기만 하면 됩니다.            array_push($arr, $this->decode($slice)) ;                               if(preg_match('/ ^s*(["'].*[^\]["'])s*:s*(S.*),?$/Uis', $slice, $parts)) { // "이름": 값 쌍
                                  $key = $this->decode($parts[1]);
                                 $val = $this->decode($parts[2]);
                                if($this->use == HTML_AJAX_JSON_LOOSE_TYPE) {
                                  $obj[$ 키] = $val;
                                 } 그렇지 않으면 {
                                 $obj->$key = $val;
                                   }
                              } elseif(preg_match('/^s*(w )s*:s*(S.*),?$/Uis', $slice, $parts)) { // 이름:값 쌍, 여기서 이름 따옴표가 없습니다
                                  $key = $parts[1];
                                 $val = $this->decode($parts[2]);
                                if($this->use == HTML_AJAX_JSON_LOOSE_TYPE) {
                                  $obj[$ 키] = $val;
                                 } 그렇지 않으면 {
                                 $obj->$key = $val;
                                 }
                          }
                          }                       } elseif((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ( $top['what'] != HTML_AJAX_JSON_IN_STR)) { // 인용문을 찾았지만 우리는 문자열
안에 있지 않습니다. '어디' => $c, 'delim' =>  $chrs{$c}));
                       //print("{$c}n에서 문자열의 시작을 찾았습니다."); RS{$ c} == $top['delim']) && ($top['what'] == HTML_AJAX_JSON_IN_STR) && (($chrs{$c - 1} != "\") || ($chrs{$c - 1} == "\" && $chrs{$c - 2} == "\"))) { // 인용문을 찾았지만 문자열에 있으며 이스케이프되지 않습니다.
                          array_pop($stk );
                          //print("{$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))) { // 왼쪽 대괄호를 찾았으며 배열, 개체 또는 슬라이스에 있습니다.
array_push($stk, array('what' => HTML_AJAX_JSON_IN_ARR, 'where' => $c, 'delim' => false));
                          //print("{$c}n에서 배열의 시작을 찾았습니다.");                            array_pop($stk);
                          //print("{$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))) { // 왼쪽 중괄호를 찾았습니다. 우리는 배열, 객체 또는 슬라이스
                          array_push($stk, array('what' => HTML_AJAX_JSON_IN_OBJ, 'where'=>$c, 'delim' =>false))에 있습니다.
                          //print("{$c}n에서 개체의 시작을 찾았습니다.");                            array_pop($stk);
                          //print("{$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))) { /// 댓글 시작을 발견했으며 현재 배열, 객체 또는 슬라이스
                           array_push($stk, array('what' => HTML_AJAX_JSON_IN_CMT, 'where' => $c, 'delim' => false));
                           $c ;
                          //print("{$c}n에서 댓글 시작을 찾았습니다.");
                       } elseif(($substr_chrs_c_2 == '*/') && ($top['what'] == HTML_AJAX_JSON_IN_CMT)) { // 댓글 끝을 찾았고 이제 우리는 하나가 되었습니다
                         array_pop($stk );
                           $c ;
                          for($i = $top['where']; $i <= $c; $i )
                                   $chrs = substr_replace($chrs, ' ', $i, 1);
                          //print("{$c}에서 댓글 끝을 찾았습니다: ".substr($chrs, $top['where'],(1   $c - $top['where']))."n ");
                     }
                  }
                 if(reset($stk) == HTML_AJAX_JSON_IN_ARR) {
                        반환 $arr;
                   } elseif(reset($stk) == HTML_AJAX_JSON_IN_OBJ) {
                      return $obj;
                  }
               }
        }
    }
}
if ( !function_exists("json_encode") || !function_exists("json_decode") ) {
    include_once "json. PHP";
    함수 json_encode($data) {
        $json = 새 HTML_AJAX_JSON();
        return $json->encode($data);
    }
    function json_decode($data) {
        $json = new HTML_AJAX_JSON();
        return $json->decode($data);
    }
}
?>

以上就介绍了 56com视频采集接口程序PHP, 包括了方面的内容, 希望对PHP教程有兴趣的朋友有所帮助.

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿