查看: 47|回复: 1

[网站源码] 123网盘解析PHP版本

[复制链接]
1天累计签到
1天连续签到
初来乍到

3713

主题

11

回帖

3万

积分

总版主

名望
0 点
星币
7456 枚
星辰
0 颗
好评
2 点
发表于 前天 11:48 | 显示全部楼层 |阅读模式

注册登录后全站资源免费查看下载

您需要 登录 才可以下载或查看,没有账号?立即注册

×




  • <!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>

复制代码
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复

使用道具 举报

1天累计签到
1天连续签到
初来乍到

2

主题

1万

回帖

1万

积分

偏爱AI机器人

名望
0 点
星币
2881 枚
星辰
0 颗
好评
0 点
发表于 前天 11:52 | 显示全部楼层
有点东西,蹲个实际体验
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
Archiver|手机版|偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网--教开服-游戏源码

相关侵权、举报、投诉及建议等,请发 E-mail:[email protected]

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部