现在抖音小视频很火,就研究了一下,写的不好请谅解。
$urls=I('url');//获取抖音视频分享链接
$dats= self::get_dy($url);
function get_dy($url){
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl);
curl_close($curl);
//获取
preg_match('/<p class="desc">(?<desc>[^<>]*)<\/p>/i', $data, $name);
preg_match('/playAddr: "(?<url>[^"]+)"/i', $data, $url);
preg_match('/cover: "(?<cover>[^"]+)"/i', $data, $cover);
preg_match('/<span class="inner">(?<inner>[^<>]*)<\/span>/i', $data, $inner);
$this->ajaxReturn($data);die;
//正则匹配
if (empty($url['url'])) {
echo '请输入正确网址,格式为:https://xxx.com/douyin.php?url=视频地址';
}else{
$array = ['name' => $name['desc'],'url' => $url['url'],'cover'=>$cover['cover'],'inner'=>$inner['inner'],];
$json = json_encode($array,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
$dats=json_decode($json,true);
}
return $dats;
}
返回的有四个值
name:是抖音的标题,
URL:是解析过的长链接,
cover:视频封面,
inner:小标题。