有一种简单的方法可以做到这一点。您需要创建用于高清和标清质量的函数,然后创建使用 curl 的文件获取函数
function hdLink($curl_content)
{
$regex = '/hd_src:"([^"]+)"/';
if (preg_match($regex, $curl_content, $match)) {
return $match[1];
} else {
return;
}
}
function sdLink($curl_content)
{
$regex = '/sd_src_no_ratelimit:"([^"]+)"/';
if (preg_match($regex, $curl_content, $match1)) {
return $match1[1];
} else {
return;
}
}
function url_get_contents($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
因此,在您的 HTML 中,您会将 Facebook 视频 URL 传递给 url_get_contents() 函数
<?php
require_once("functions.php");
if (!empty($_POST["url"]) ) {
$data = url_get_contents($_POST["url"]);
$hdlink = hdLink($data);
$sdlink = sdLink($data);
if (!empty($sdlink) && !empty($hdlink) ) {?>
<a target="_blank" download data-href="<?php echo $hdlink; ?>" href="<?php echo $hdlink; ?>" class="btn btn-block btn-lg btn-success">Download Video</a>
<?php }
}
?>
参考:如何在answerbox.net上通过3 步开发自己的 Facebook 视频下载器