写了一个简单的百度网盘是否有效的插件,可以检测分享的链接是否还有效。

请求方法:?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"; } ?>
最后修改:2025 年 02 月 11 日
如果觉得我的文章对你有用,请随意赞赏