写了一个简单的百度网盘是否有效的插件,可以检测分享的链接是否还有效。
请求方法:?url=https://pan.baidu.com/s/xxxx
<?php
function isLinkValid($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
));
// 启用自动跟随重定向
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$body = curl_exec($ch);
$error = curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($error) {
return array('valid' => false, 'reason' => '网络错误');
}
if ($httpcode != 200) {
return array('valid' => false, 'reason' => 'HTTP错误: ' . $httpcode);
}
$error_patterns = array(
'class="error-404"' => '分享已取消',
'分享的文件已经被删除了' => '文件已删除',
'啊哦,你来晚了' => '链接已过期',
'链接不存在' => '链接不存在',
'分享内容已失效' => '分享已失效',
'分享的文件已过期' => '文件已过期',
'分享的文件已被取消了' => '分享已取消',
'error-img' => '链接错误',
'error-page' => '页面错误',
'share-error' => '分享错误'
);
foreach ($error_patterns as $pattern => $reason) {
if (strpos($body, $pattern) !== false) {
return array('valid' => false, 'reason' => $reason);
}
}
$valid_patterns = array(
'share-download' => true, // 下载按钮
'share-file-info' => true, // 文件信息
'share-verify' => true, // 提取码验证
'pickcode' => true // 提取码输入框
);
$found_valid_pattern = false;
foreach ($valid_patterns as $pattern => $required) {
if (strpos($body, $pattern) !== false) {
$found_valid_pattern = true;
break;
}
}
if (!$found_valid_pattern) {
return array('valid' => false, 'reason' => '无效的分享页面');
}
return array('valid' => true, 'reason' => '网盘正常');
}
// 获取 URL 参数
if (isset($_GET['url'])) {
$url = $_GET['url'];
$result = isLinkValid($url);
header('Content-Type: application/json');
echo json_encode($result);
} else {
echo "请提供 URL 参数,例如:?url=https://pan.baidu.com/s/xxxx";
}
?>
13 条评论
学习一下
学习一下
学习一下
11111111
学习
学习。。
感谢分享
感谢分享
感谢分享
白嫖api