public function index() { $action = I("post.action"); if ($action == "login") { $user = I("post.user"); $pwd = I("post.pwd"); if (strlen($user) < 3 || strlen($pwd) < 5) { $this->assign("alert", sweetAlert("温馨提示", "用户名或者密码格式不正确!", "warning")); } else { $pwd = md5Pwd($pwd); if ($user = $this->pdo->find("select uid from pre_users where (user=:user or email=:user) and pwd=:pwd limit 1", array(":user" => $user, ":pwd" => $pwd))) { $sid = getSid(); $this->pdo->execute("update pre_users set sid=:sid where uid=:uid limit 1", array(":uid" => $user['uid'], ":sid" => $sid)); Cookie::set("userSid", $sid, array("path" => "/", "expire" => 3600 * 24)); $this->assign("alert", sweetAlert("登录成功!", "欢迎回来,进入控制面板!", "success", U("/index/Panel/index"))); return $this->fetch("common/sweetAlert"); } else { $this->assign("alert", sweetAlert("温馨提示", "用户名或者密码不正确!", "warning")); } } } elseif ($action == "reg") { $this->assign("isReg", true); $user = I("post.user"); $pwd = I("post.pwd"); $email = strtolower(I("post.email")); $code = I("post.code"); if (strlen($user) < 3) { $this->assign("alert", sweetAlert("温馨提示", "用户名太短!", "warning")); } elseif (strlen($pwd) < 5) { $this->assign("alert", sweetAlert("温馨提示", "密码太简单!", "warning")); } elseif (strlen($code) != 4 || !isset($_COOKIE['verification']) || md5(strtolower($code)) !== $_COOKIE['verification']) { $this->assign("alert", sweetAlert("温馨提示", "验证码错误!", "warning")); } elseif (!preg_match('/^[a-zA-Z0-9\\-\\_]+@[a-zA-Z0-9\\-]+\\.[a-zA-Z]+$/', $email)) { $this->assign("alert", sweetAlert("温馨提示", "邮箱格式不正确!", "warning")); } elseif ($this->pdo->find("select uid from pre_users where user=:user limit 1", array(":user" => $user))) { $this->assign("alert", sweetAlert("温馨提示", "用户名已存在!", "warning")); } elseif ($this->pdo->find("select uid from pre_users where email=:email limit 1", array(":email" => $email))) { $this->assign("alert", sweetAlert("温馨提示", "邮箱账号已存在!", "warning")); } else { setCookie('verification', null, -1, '/'); //销毁验证码 $insert = array(); $insert[':user'] = $user; $insert[':pwd'] = md5Pwd($pwd); $insert[':email'] = $email; $insert['sid'] = getSid(); if ($this->pdo->execute("INSERT INTO `pre_users` (`user`, `email`, `pwd`, `sid`, `regtime`) VALUES (:user, :email, :pwd, :sid, NOW())", $insert)) { $this->assign("alert", sweetAlert("注册成功!", "马上登录!", "success", U("index"))); return $this->fetch("common/sweetAlert"); } else { $this->assign("alert", sweetAlert("温馨提示", "注册失败,请稍候再试!", "warning")); } } } $this->assign("webTitle", C("webTitle") ? C("webTitle") : "网站首页"); return $this->fetch(); }
function fetch_youku_flv($url) { preg_match("#id_(.*?)\\.html#", $url, $out); $id = $out[1]; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $id); $data = json_decode($content); foreach ($data->data[0]->streamfileids as $k => $v) { $sid = getSid(); $fileid = getfileid($v, $data->data[0]->seed); $one = $data->data[0]->segs->{$k}; if ($k == 'flv' || $k == 'mp4') { return "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}"; } continue; } }
function getvideo($id) { $content = get_curl_contents('http://v.youku.com/player/getPlaylist/VideoIDS/' . $id); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->hd2; $sk = 'hd2'; if (!$fileid2_) { $fileid2_ = $fileid_->mp4; $sk = 'mp4'; } if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data['0']->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $sk = str_replace('hd2', 'flv', $sk); $urllist[$seg1]['url'] = 'k.youku.com/player/getFlvPath/sid/_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; $urllist[$seg1]['size'] = $size; $urllist[$seg1]['sec'] = $seconds; $i += 1; } return $urllist; }
function getYoukuFlv($url) { //preg_match("#id_(.*?)\.html#",$url,$out); //$id=$out[1]; $url2 = str_replace('_wd1', '', $url); //echo $url2; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $url2); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->mp4; $sk = 'mp4'; if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); //print_r($filed2_); $segs = $data->data[0]->segs->{$sk}; $i = 0; //echo dechex(5); foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)); if (count($AA) < 2) { $AA = '0' . $AA; } $i += 1; $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; if ($i > 1) { $urllist .= '|'; } $urllist .= 'http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; } return $urllist; }
$checkEmail->execute(array(':email' => $email)); if (strlen($user) < 3 || strlen($pwd) < 6) { $regMsg = '用户名或密码格式不正确'; } elseif (!preg_match('/^[a-zA-Z0-9\\-\\_]+@[a-zA-Z0-9\\-]+\\.[a-zA-Z]+$/', $email)) { $regMsg = '邮箱格式不正确'; } elseif (strlen($code) != 4 || !isset($_COOKIE['verification']) || md5(strtolower($code)) !== $_COOKIE['verification']) { $regMsg = '验证码错误'; } elseif ($checkUser->fetch()) { $regMsg = '此用户名已存在'; } elseif ($checkEmail->fetch()) { $regMsg = '该邮箱已经注册过'; } else { setCookie('verification', null, -1, '/'); //销毁验证码,以防利用这个验证码重复注册 $pwd = getPwd($pwd); $sid = getSid(); $sql = "INSERT INTO `kldns_users` (`user`, `email`, `pwd`, `sid`, `regtime`, `lasttime`, `lastip`, `logintime`, `loginip`) VALUES (:user,:email, :pwd, :sid, NOW(), NOW(), :ip, NOW(), :ip)"; $stmt = $db->prepare($sql); if ($stmt->execute(array(':user' => $user, ':email' => $email, ':pwd' => $pwd, ':sid' => $sid, ':ip' => getIp()))) { setCookie('kldns_sid', $sid, time() + 3600 * 24 * 7, '/'); exit("<script language='javascript'>alert('注册成功!马上进入控制面板!');window.location.href='/control.php';</script>"); } else { $dberror = $db->errorInfo(); $regMsg = '注册失败:保存数据库出错' . $dberror[2]; } } } $title = '域名控制台'; //本页标题 require_once 'head.php'; ?>
function getYouku($url) { if (strpos($url, 'html')) { $url2 = inter($url, 'id_', '.html'); } elseif (strpos($url, 'swf')) { $url2 = inter($url, '/sid/', '/'); } else { $url2 = str_replace('_wd1', '', $url); } $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $url2); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->mp4; $sk = 'mp4'; if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data[0]->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $urllist .= ' <video>' . chr(13); $urllist .= ' <file>http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2 . '</file>' . chr(13); $urllist .= ' <size>' . $size . '</size>' . chr(13); $urllist .= ' <seconds>' . $seconds . '</seconds>' . chr(13); $urllist .= ' </video>' . chr(13); $i += 1; } $urllist2 = '<?xml version="1.0" encoding="utf-8"?>' . chr(13); $urllist2 .= ' <ckplayer>' . chr(13); $urllist2 .= ' <flashvars>' . chr(13); $urllist2 .= ' {h->2}' . chr(13); $urllist2 .= ' </flashvars>' . chr(13); $urllist2 .= $urllist; $urllist2 .= ' </ckplayer>'; echo $urllist2; }
function getvideo($id, $pid = 2) { $hz = '_youku'; $pidarrs[] = 'flv'; $pidarrs[] = 'mp4'; $pidarrs[] = 'hd2'; $pidarrs[] = 'hd3'; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $id); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->hd3; $pido = '4'; if (!$fileid2_) { $fileid2_ = $fileid_->hd2; $pido = '3'; } if (!$fileid2_) { $fileid2_ = $fileid_->mp4; $pido = '2'; } if (!$fileid2_) { $fileid2_ = $fileid_->flv; $pido = '1'; } switch ($pido) { case '1': $qvars = __BQ__ . '_' . $id . $hz; break; case '2': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz; break; case '3': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz . '|' . __CQ__ . '_' . $id . $hz; break; case '4': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz . '|' . __CQ__ . '_' . $id . $hz . '|' . __YH__ . '_' . $id . $hz; break; default: $qvars = $id . $hz; break; } $pid = min($pid, $pido); $sk = $pidarrs[$pid - 1]; $fileid2_ = $fileid_->{$sk}; $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data['0']->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $sk = str_replace('hd2', 'flv', $sk); $sk = str_replace('hd3', 'flv', $sk); $urllist['urls'][$seg1]['url'] = 'http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; $urllist['urls'][$seg1]['size'] = $size; $urllist['urls'][$seg1]['sec'] = $seconds; $i += 1; } $urllist['vars'] = '{h->2}{a->' . $qvars . '}{f->' . __HOSTURL__ . '?url=[$pat' . ($pid - 1) . ']}'; return $urllist; }
$len = strlen($source); for ($i = 0; $i < $len; ++$i) { $seed = ($seed * 211 + 30031) % 65536; $index = $seed / 65536 * strlen($source); $c = substr($source, $index, 1); $mixed .= $c; $source = str_replace($c, "", $source); } return $mixed; } // echo $get_data = file_get_contents("http://v.youku.com/player/getPlayList/VideoIDS/XMjU3MzIxOTk2"); $get_data_1 = file_get_contents("http://v.youku.com/player/getPlayList/VideoIDS/XMjU3MzIxOTk2/Pf/4/ctype/12/ev/1"); // $get_data = '{"data":[{"ct":"c","cs":"2050","logo":"http:\/\/g1.ykimg.com\/","seed":8395,"tags":["\u6cf0\u56fd"],"categories":"96","videoid":"64330499","vidEncoded":"XMjU3MzIxOTk2","username":"******","userid":"2871118","title":"\u62f3\u97381\u4e4b\u76d7\u4f5b\u7ebfCD3","up":0,"down":0,"ts":"YMkryzErbFZvVR8B*Bj9Vg","tsup":"YMkv7zIrbFZvVR8C3Bz9Vg","key1":"b148facb","key2":"bfd4235c4c9b2b93","tt":"0","videoSource":"1","seconds":"897.27","streamfileids":{"flv":"6*43*6*6*6*37*6*43*6*6*23*30*14*59*43*42*43*14*53*6*59*43*6*6*37*31*53*59*23*51*53*53*50*30*44*51*51*22*65*44*42*6*53*65*31*50*59*56*65*23*37*50*37*65*37*30*50*56*31*59*10*31*23*42*22*14*","mp4":"6*43*6*6*6*50*6*43*6*6*23*30*14*59*23*44*10*22*53*6*59*43*6*6*37*31*53*59*23*51*53*53*50*30*44*51*51*22*65*44*42*6*53*65*31*50*59*56*65*23*37*50*37*65*37*30*50*56*31*59*10*31*23*42*22*14*"},"segs":{"flv":[{"no":"0","size":"12936112","seconds":391,"k":"ca1fe0eba99f7429282adeac","k2":"1445df485f3ef867d"},{"no":"1","size":"11707423","seconds":393,"k":"c0290080ec12eb6624125f6e","k2":"1485442df33f8eacb"},{"no":"2","size":"3590770","seconds":112,"k":"6393b0d1bc4ce8f724125f6e","k2":"1710e97422bcc1289"}],"mp4":[{"no":"0","size":"25016518","seconds":391,"k":"42b93cc3cc3a4409282adeac","k2":"180bd156d83db08ff"},{"no":"1","size":"25887969","seconds":393,"k":"8baef59e1075faae24125f6e","k2":"1179dade2b458a0df"},{"no":"2","size":"5435715","seconds":111,"k":"48975615b359c1af261e9f0d","k2":"157aaf89cbecb16a3"}]},"streamsizes":{"flv":"28234305","mp4":"56340202"},"stream_ids":{"flv":"75489279","mp4":"75489212"},"streamlogos":{"flv":1,"mp4":1},"streamtypes":["flv","mp4"],"streamtypes_o":["flvhd","mp4"]}],"user":{"id":"79875178"},"controller":{"search_count":true,"mp4_restrict":1,"stream_mode":1,"video_capture":true,"hd3_enabled":false,"area_code":110000,"dma_code":64495,"continuous":1,"playmode":"normal","circle":false,"tsflag":true,"other_disable":false,"xplayer_disable":false,"app_disable":false,"share_disabled":false,"download_disabled":false,"pc_disabled":false,"pad_disabled":false,"mobile_disabled":false,"tv_disabled":false,"comment_disabled":false}}'; $get_data = json_decode($get_data, 1); print_r($get_data); $v_format = "flv"; echo $fileid = $get_data["data"][0]["streamfileids"][$v_format]; echo $seed = $get_data['data'][0]['seed']; echo $key1 = $get_data['data'][0]['key1']; echo $key2 = $get_data["data"][0]["segs"][$v_format][0]['k']; echo $sid = getSid(); echo $p_fileid = getfileid($fileid, $seed); // echo json_encode([1,"2222"=>111,"1111111111"]) ; // // echo $key = getkey($key1, $key2); echo PHP_EOL, $play_url = "http://f.youku.com/player/getFlvPath/sid/00_00/st/{$v_format}/fileid/{$p_fileid}?K={$key}"; // http://k.youku.com/player/getFlvPath/sid/6444898585859100c3a03_00/st/flv/fileid/03000203004D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=7eecabb1cc2a085a24125f72&ctype=10&ev=1&oip=2043096855&token=4120&ep=YoqzgWJZPIRlkPxw9CiZ%2FHcAL%2Bu%2F14dq7ST7Cc5hDP71%2B7V204E%2B%2BMXvDHYv359ZiIuboIF1fm%2FbHujrvKCzz1rONfQmrVEMrMFUZD3nWbW%2F9dXqRvY9D3cMkDdvUT064qI2FGo2gQY%3D&ymovie=1 // http://f.youku.com/player/getFlvPath/sid/144489843614366 _00 /st/flv/fileid/03000203004D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=e23d2f9c2ec57705161e9f13 // http://k.youku.com/player/getFlvPath/sid/6444898585859100c3a03_01/st/flv/fileid/03000203014D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=b8f348b42b2d222c261e9f13&ctype=10&ev=1&oip=2043096855&token=4120&ep=YoqzgWJZPIRlkPxw9CiZ%2FHcAL%2Bu%2F14dqNK9GQoD3cmH1%2B7V204E%2B%2BMXvDHYv359ZiIuboIF1fm%2FbHujrvKCzz1rONfQmrVEMrMFUZD3nWbW%2F9dXqRvY9D3cMkDdvUT06zZ1LDg5py78%3D&ymovie=1