|
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。
成品地址:地址
效果
- public function getLink(Request $request){
- $url = I('url');
- $pattern = '{(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?}';
- preg_match($pattern,$url,$url);
- if ($url){
- $update['share_url'] = (string)$url[0];
- }else{
- $this->returnJson(0,'error',['code'=>0,'msg'=>'获取失败']);
- }
- $res = Db::name('log')->where('share_url',$update['share_url'])->find();
- $reqData['code'] = 1;
- $reqData['msg'] = '解析成功';
- if (!$res){
- $url = (string)$url[0];
- $pattern = '{(?<=\.).*(?=\.com)}';
- preg_match($pattern,$url,$type);
- $type = (string)$type[0];
- switch ($type){
- case 'douyin':
- $res = $this->douyin($url,'insert');
- break;
- case 'kuaishou':
- $res = $this->ks($url,'insert');
- break;
- default:
- $this->returnJson(0,'error',['code'=>0,'msg'=>'暂不支持该网站']);
- break;
- }
- $reqData['addr'] = $res['addr_url'];
- $reqData['title'] = $res['title'];
- $reqData['cover'] = $res['cover'];
- $reqData['is_url'] = $res['is_url'];
- $this->returnJson(1,'success',$reqData);
- }else{
- //查询是否超过一小时,超过则更新
- $over_time = time() - $res['create_time'];
- if ($over_time>3600){
- $url = (string)$url[0];
- $pattern = '{(?<=\.).*(?=\.com)}';
- preg_match($pattern,$url,$type);
- $type = (string)$type[0];
- if ($type=='douyin'){
- $res = $this->douyin($url,'update');
- }elseif ($type=='kuaishou'){
- $res = $this->ks($url,'update');
- }
- $reqData['addr'] = $res['addr_url'];
- $reqData['title'] = $res['title'];
- $reqData['cover'] = $res['cover'];
- $reqData['is_url'] = $res['is_url'];
- $this->returnJson(1,'success',$reqData);
- }else{
- $reqData['addr'] = $res['addr_url'];
- $reqData['cover'] = $res['cover'];
- $reqData['title'] = $res['title'];
- $reqData['is_url'] = $res['is_url'];
- $this->returnJson(1,'success',$reqData);
- }
- }
- }
- protected function douyin($url,$action = 'insert'){
- $update['share_url'] = $url;
- $url = get_headers($url,true);
- $url = $url['location'];
- $pattern = '{(?<=share\/video\/).*(?=\/)}';
- preg_match($pattern,$url,$video_id);
- $video_id = $video_id[0];
- $ql = QueryList::get('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$video_id);
- $res = json_decode($ql->getHtml(),true);
- $url = $res['item_list'][0]['video']['play_addr']['url_list'][0];
- $update['title'] = $res['item_list'][0]['share_info']['share_title'];
- $update['cover'] = $res['item_list'][0]['music']['cover_large']['url_list'][0];
- $update['create_time'] = time();
- $url = str_replace('playwm','play',$url);
- $update['is_url'] = $url;
- $url = get_headers($url,true);
- $url = $url['location'];
- $update['addr_url'] = $url;
- if ($action=='insert'){
- $id = Db::name('log')->insertGetId($update);
- $res = Db::name('log')->where('id',$id)->find();
- }else{
- $res = Db::name('log')->where('share_url',$update['share_url'])->update($update);
- $res = Db::name('log')->where('share_url',$update['share_url'])->find();
- }
- return $res;
- }
复制代码
|
|