一段123网盘直连解析下载源码,CSS样式都有,界面也很不错,复制到PHP环境即可运行。
<!DOCTYPE html> <html> <head> <title>123解析</title> <style> body { font-family: "Helvetica Neue", Arial, sans-serif; background-color: #f5f5f7; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; min-height: 100vh; } .container { max-width: 600px; padding: 20px; box-sizing: border-box; text-align: center; } h1 { font-size: 32px; font-weight: bold; color: #333333; margin-bottom: 40px; margin-top: 40px; } form { margin-bottom: 40px; } label { display: block; font-size: 20px; font-weight: bold; color: #333333; margin-bottom: 10px; } input[type="text"] { width: 100%; padding: 12px; font-size: 16px; border: 1px solid #cccccc; box-sizing: border-box; margin-bottom: 20px; } input[type="submit"] { padding: 12px 24px; font-size: 18px; font-weight: bold; color: #ffffff; background-color: #0070c9; border: none; cursor: pointer; } .download-link { margin-top: 20px; display: flex; align-items: center; justify-content: center; } .error-icon { margin-right: 10px; color: #ff0000; font-size: 24px; } .success-icon { margin-right: 10px; color: #009900; font-size: 24px; } a { display: inline-block; padding: 12px 24px; font-size: 18px; font-weight: bold; color: #ffffff; background-color: #0070c9; text-decoration: none; } a:hover { background-color: #0057a0; } </style> </head> <body> <div class="container"> <h1>123解析</h1> <form method="post" action=""> <label for="shareUrl">分享链接:</label> <input type="text" id="shareUrl" name="shareUrl" required> <input type="submit" name="submit" value="解析"> </form> <?php if(isset($_POST['submit']) && isset($redirectUrl)): ?> <?php endif; ?> <?php if(isset($_POST['submit'])) { $shareUrl = $_POST['shareUrl']; $shareCode = ""; $pattern = "/(?<=\/s\/)[^\/.]+/"; preg_match($pattern, $shareUrl, $match); if ($match) { $shareId = $match[0]; $extractCodePattern = "/提取码:(\w+)/"; preg_match($extractCodePattern, $shareUrl, $extractCodeMatch); if ($extractCodeMatch) { $shareCode = $extractCodeMatch[1]; } // Get user information getInfo($shareId, $shareCode); } else { echo'<span class="error-icon">✗</span>'. "错误: 123pan URL 未找到!"; } } function getInfo($shareId, $shareCode) { $requestUrl = "https://www.123pan.com/b/api/share/get?limit=100&next=1&orderBy=share_id&orderDirection=desc&shareKey=" . $shareId . "&SharePwd=" . $shareCode . "&ParentFileId=0&Page=1"; $opts = array( 'http' => array( 'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100\r\n" ) ); $context = stream_context_create($opts); $responseText = file_get_contents($requestUrl, false, $context); parseInfo($responseText, $shareId); } function parseInfo($str, $shareId) { $data = json_decode($str, true); if ($data['code'] == 0) { $type = $data['data']['InfoList'][0]['Type']; if ($type == 0) { $fileId = $data['data']['InfoList'][0]['FileId']; $size = $data['data']['InfoList'][0]['Size']; $s3KeyFlag = $data['data']['InfoList'][0]['S3KeyFlag']; $etag = $data['data']['InfoList'][0]['Etag']; // Perform second step combinedData($shareId, $fileId, $size, $s3KeyFlag, $etag); } else { echo "错误: Folder parsing is currently not supported."; } } else { $code = $data['code']; $message = $data['message']; echo '<span class="error-icon">✗</span>'."错误: 错误码" . $code . "//" . $message; } } function combinedData($shareId, $fileId, $size, $s3KeyFlag, $etag) { $requestUrl = "https://www.123pan.com/b/api/share/download/info"; $postData = json_encode(array( "ShareKey" => $shareId, "FileID" => $fileId, "S3keyFlag" => $s3KeyFlag, "Size" => $size, "Etag" => $etag )); $opts = array( 'http' => array( 'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100\r\n" . "Content-Type: application/json;charset=UTF-8\r\n", 'method' => 'POST', 'content' => $postData ) ); $context = stream_context_create($opts); $response = file_get_contents($requestUrl, false, $context); parseDownloadURL($response); } function parseDownloadURL($str) { $data = json_decode($str, true); if ($data['code'] == 0) { $downloadURL = $data['data']['DownloadURL']; $downloadURL = extractDownloadLink($downloadURL); getDirectLink($downloadURL); } else { $code = $data['code']; $message = $data['message']; echo '<span class="error-icon">✗</span>'."错误: 错误码" . $code . "//" . $message; } } function extractDownloadLink($str) { $pattern = "/params=([^&]+)/"; preg_match($pattern, $str, $match); if ($match) { $paramsValue = $match[1]; $decodedString = base64_decode($paramsValue); // Check if auto_redirect parameter exists if (strpos($decodedString, 'auto_redirect') === false) { if (strpos($decodedString, '?') !== false) { $decodedString .= "&auto_redirect=0"; } else { $decodedString .= "?auto_redirect=0"; } } return $decodedString; } else { echo "Failed to extract Download URL"; } } function getDirectLink($requestUrl) { $opts = array( 'http' => array( 'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100\r\n" ) ); $context = stream_context_create($opts); $responseText = file_get_contents($requestUrl, false, $context); parseDirectLink($responseText); } function parseDirectLink($str) { $data = json_decode($str, true); if ($data['code'] == 0) { $redirectUrl = $data['data']['redirect_url']; echo '<span class="success-icon">✓</span><a href="' . $redirectUrl . '">点击下载</a>'; } else { $code = $data['code']; $message = $data['message']; echo '<span class="error-icon">✗</span>'."错误: 错误码" . $code . "//" . $message; } } ?> </div> </body> </html>