分类: PHP代码

PHP代码分享

  • 阿里图床API接口源码百分百可用(一手接口源码)

    今天再发一个,阿里图床API源码。和上次美团图床API源码一样,百分百可用。

    此接口并非AliExpress那个图床,貌似AliExpress会删图。这个不会很稳了。

    这次不会再免费放出来了,有些人是真的狗,直接搬运文章一点版权也不留。

    老规矩上传之后的图片例子:

    https://img.alicdn.com/imgextra/i1/O1CN01fb6SDs2MRRuKFSJIT_!!2216176529824-0-fleamarket.jpg

    [hidecontent type=”payshow”]
    <?php
    
    // 前端上传的文件
    $file = $_FILES['file'];
    
    // 需要POST提交的数据
    $postData = array(
        'file' => new CURLFile($file['tmp_name'], $file['type'], $file['name']),
        'name' => '随便伪装的名.jpg',
        'folderId' => 0,
        'appkey' => 'fleamarket'
    );
    
    // API地址
    $url = 'https://stream-upload.goofish.com/api/upload.api?_input_charset=utf-8&appkey=fleamarket';
    
    // 初始化CURL
    $ch = curl_init();
    
    // 设置CURL参数
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    // 设置请求头
    $headers = array(
        'Accept: application/json, text/plain, */*',
        'Accept-Encoding: gzip, deflate, br, zstd',
        'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
        'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqqAE8SXCf6EseFfE',
        'Cookie: ',//请填写你的闲鱼创作平台CK
        'Origin: https://author.goofish.com',
        'Referer: https://author.goofish.com/',
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0',
        'Sec-Ch-Ua: "Microsoft Edge";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
        'Sec-Ch-Ua-Mobile: ?0',
        'Sec-Ch-Ua-Platform: "Windows"',
        'Sec-Fetch-Dest: empty',
        'Sec-Fetch-Mode: cors',
        'Sec-Fetch-Site: same-site',
        'Priority: u=1, i'
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
    // 执行CURL请求并获取返回结果
    $response = curl_exec($ch);
    
    // 关闭CURL资源
    curl_close($ch);
    
    // 输出上传结果
    echo $response;
    
    ?>
    
    [/hidecontent]
  • 美团图床上传接口API源码百分百可用(一手接口源码)

    更换WordPress后很久没有发博客了,发一个接口源码吧。

    很早之前的了,现在也还可以用,美团图床该说不说还是稳,和百家号图床一样稳定。最大貌似上传20-25MB图片,用本接口源码,可用做自己的图床自己用。注意代码中的表头中的token替换为你自己的美团token,token怎么获取,自己研究一下。

    上传后的图片例子:https://img.meituan.net/video/4317aaf82ca1c9c5a75e91c88f478f4e105742.jpg

    京东图床不会更了,好多人搬运真是一点版权都不留啊,版权一改就是你的了是吧。

    代码:

    [hidecontent type=”reply”]
    <?php
    // zai1.com
    // 检查是否有文件上传
    // 转载请注明出处,谢谢啦。
    if(isset($_FILES['file'])) {
        // 获取文件信息
        $file = $_FILES['file'];
    
        // 设置请求头
        $headers = array(
            'Accept: */*',
            'Accept-Encoding: gzip, deflate, br',
            'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
            'Cache-Control: no-cache',
            'Connection: keep-alive',
            'Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywt1pMxJgab51elEB',
            'Host: pic-up.meituan.com',
            'Origin: https://czz.meituan.com',
            'Pragma: no-cache',
            'Referer: https://czz.meituan.com/',
            'Sec-Fetch-Dest: empty',
            'Sec-Fetch-Mode: cors',
            'Sec-Fetch-Site: same-site',
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0',
            'client-id: p5gfsvmw6qnwc45n000000000025bbf1',
            'sec-ch-ua: "Not A(Brand";v="99", "Microsoft Edge";v="121", "Chromium";v="121"',
            'sec-ch-ua-mobile: ?0',
            'sec-ch-ua-platform: "Windows"',
            'token: 换自己的toekn'
        );
    
        // 构建 multipart/form-data 格式的数据
        $postData = "------WebKitFormBoundarywt1pMxJgab51elEB\r\n";
        $postData .= 'Content-Disposition: form-data; name="file"; filename="' . $file['name'] . "\"\r\n";
        $postData .= 'Content-Type: ' . $file['type'] . "\r\n\r\n";
        $postData .= file_get_contents($file['tmp_name']) . "\r\n";
        $postData .= "------WebKitFormBoundarywt1pMxJgab51elEB--\r\n";
    
        // 初始化 cURL
        $ch = curl_init();
    
        // 设置 cURL 选项
        curl_setopt($ch, CURLOPT_URL, 'https://pic-up.meituan.com/extrastorage/new/video?isHttps=true');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        // 执行请求并获取响应
        $response = curl_exec($ch);
    
        // 检查是否有错误发生
        if(curl_errno($ch)){
            echo 'Curl error: ' . curl_error($ch);
            exit;
        }
    
        // 关闭 cURL 资源
        curl_close($ch);
    
        // 解析 JSON 响应
        $jsonResponse = json_decode($response, true);
    
        // 检查是否上传成功
        if(isset($jsonResponse['success']) && $jsonResponse['success'] === true) {
            // 提取原始链接和原始文件名
            $originalLink = $jsonResponse['data']['originalLink'];
            $originalFileName = $jsonResponse['data']['originalFileName'];
            
            // 组成新的 JSON 并输出
            $newJson = array(
                'Jobs' => $originalLink,
                'Name' => $originalFileName,
                'os'=>'node-oss.zai1.com'
            );
            echo json_encode($newJson);
        } else {
            // 输出上传失败信息
            echo json_encode(array('error' => 'Upload failed'));
        }
    
    } else {
        echo "No file uploaded.";
    }
    ?>
    [/hidecontent]
  • PHP宝塔面板网站自动本地备份+网盘备份源码

    注意:在意网盘已不再运行即现在无法上传云端,只能本地备份。
    注意:在意网盘已不再运行即现在无法上传云端,只能本地备份。
    注意:在意网盘已不再运行即现在无法上传云端,只能本地备份。

    经过

    前段时间朋友用的服务器,服务商那边的硬盘突然全坏完了,而且没有备份!服务商和我朋友都没有备份导致网站宕机了一周左右,本来PC移动都是权1权2了因为宕机SEO全部掉完!一条也不复存在!我朋友翻遍了电脑才找到了份今年4月份左右的备份,但是写过的文章,修改过的模板..还有我搞的测试的小玩意全部没了。没办法恢复。

    这是站长们最头疼的事情,辛苦了好久,因为没备份网站倒闭….

    于是他今天问我有没有自动备份的他不想买宝塔插件!于是就写了这个脚本!

    源码说明

    纯PHP脚本代码,无任何加密,可自由选择本地备份或异地备份(在意网盘备份),可自由选择上传网盘后,本地压缩包与sql是否删除(防止被人恶意扫描拿到源码+数据库 推荐

    源码内我已注释好,一眼就懂不在过多赘述!噢对差点忘了!PHP需要允许exec函数

    PHP允许exec函数:

    选择当前文件所使用的PHP版本>管理>禁用函数>CTRL+F:搜索exec>删除

    部分代码预览

    下载

    [hidecontent type=”logged”]

    。。。

    [/hidecontent]
  • PHP禁止指定IP访问或调用代码

    写pic.zai1.com图床的时候想到的,拉黑恶意IP禁止使用。

    把要拉黑的IP保存到ip.txt一行一个,被拉黑的IP无法访问或调用,或做跳转或拒绝访问都可以自行扩展

    需要注意:请手动创建一个ip.txt,否则报错。

    代码如下:

    <?php
    // 获取访客IP
    $visitor_ip = $_SERVER['REMOTE_ADDR'];
    
    
    $blacklist_file = 'ip.txt';
    $blacklisted_ips = file($blacklist_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    
    // 检查IP是否在ip.txt黑名单中
    if (in_array($visitor_ip, $blacklisted_ips)) {
        // IP 在黑名单中,拒绝访问
        header('HTTP/1.1 403 Forbidden');
        echo 'Access Denied';
        exit;
    }
    
    // 如果不在黑名单 正常的代码。
    
    ?>
    

    如果你使用了CDN那么用上面的代码可能获取到的是节点IP,你可以使用以下代码解决。

    <?php
    // 针对你使用了CDN,来获取用户IP
    $visitor_ip = $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
    
    
    $blacklist_file = 'ip.txt';
    $blacklisted_ips = file($blacklist_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    
    
    if (in_array($visitor_ip, $blacklisted_ips)) {
        // IP 在黑名单中,拒绝访问
        header('HTTP/1.1 403 Forbidden');
        echo 'Access Denied';
        exit;
    }
    
    // 允许访问的代码
    ?>
    
  • 旧版PHP腾讯视频一次解析算法源码ckey9.1

    去年买的东西,可以调分辨率 最高支持4K,但是4K电脑端播不了手机端可以播放 4k/1080P/720P/480P可随意切换。支持非会员视频不走账号,ckey9.1算法,会员视频在调用ck。mp4格式和m3u8格式随意选择。支持缓存。

    去年玩的时候买的花了300大洋,今年还能不能用不晓得。可以拿去研究!仅供学习参考!

    打包下载:含解析算法,m3u8缓存清理文件,带注释。

    [hidecontent type=”reply”]

    https://t7g.lanzouj.com/inaOM0gdmb0d

    [/hidecontent]
  • PHP允许跨域请求代码

    解决PHP的API跨域无法请求

    PHP代码如下:

    // 方法1.允许所有来源访问
    header("Access-Control-Allow-Origin: *");
    
    // 方法2.允许特定的请求方式
    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
    
    // 方法3.允许特定的请求头
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
  • PHP对接WxPusher微信推送源码

    WxPusher (微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。 你可以使用WxPusher来做服务器报警通知、抢课通知、抢票通知,信息更新提示等。

    官方文档:WxPusher微信推送服务 (zjiecode.com)

    朋友让帮忙写的,他是用来推送余额信息的,我改成了读取get参数来推送了。

    参数说明:

    zy=填写摘要内容,即不点进去查看的标题内容。

    zw=填写用户点击这个推送后展现的内容,比如详细的通知呀..

    代码内容我已放到下方,并已添加注释!需要的小伙伴可以评论回复直接拿去。

    [hidecontent type=”reply”]
    <?php
    //* blgo:zai1.com
    //* 在意博客
    $notificationApiUrl = "https://wxpusher.zjiecode.com/api/send/message";
    $appToken = "AT_grLbeDOEVg9cDJmXeuuyMbLrFk5a2oA7"; // 应用Token WxPusher后台获取
    $userUid = "UID_7tYeDMpH5seB2kCCQSTvUcRFWeq9"; // 你的用户UID WxPusher关注公众号可获得,或扫码。具体看后台获取~
    
    $summary = $_GET['zy']; // 从GET请求中获取"zy"参数的内容
    $content = $_GET['zw']; // 从GET请求中获取"zw"参数的内容
    
    try {
        // 构建通知数据
        $notificationData = array(
            "appToken" => $appToken,
            "content" => $content, // 使用GET请求中获取的"zw"参数内容作为提示内容
            "summary" => $summary, // 使用GET请求中获取的"zy"参数内容作为消息摘要
            "contentType" => 1,
            "uids" => array($userUid)
        );
    
        $options = array(
            'http' => array(
                'header' => "Content-type: application/json\r\n",
                'method' => 'POST',
                'content' => json_encode($notificationData)
            )
        );
    
        $context = stream_context_create($options);
        $notificationResponse = file_get_contents($notificationApiUrl, false, $context);
    
        $notificationResult = json_decode($notificationResponse, true);
        if ($notificationResult["success"]) {
            echo "推送通知已发送\n";
        } else {
            echo "推送通知发送失败\n";
        }
    
    } catch (Exception $e) {
        echo "发生错误:" . $e->getMessage() . "\n";
    }
    ?>
    [/hidecontent]
  • php阿里云OSS上传文件示例(附源码)

    没什么好发的..发一下之前弄的php上传阿里云OSS例子吧!

    源码写的比较简单,关键部分我也都加入了注释。感兴趣的朋友可以直接学习/参考

    作用:

    阿里云OSS上传例子,免去登录阿里云在上传OSS文件..当自己图床??Emm网站静态托管?….有能力的可以自己扩写扩写适合自己业务。

    文件说明:

    index.html(前端,用了一些bootstrap3元素)up.php、up2.php(后端API,PHP)。

    当然如果你是作为自己的图床或静态托管.请务必别泄露自己的API(尽量为API增加限制比如时效性token或一次性token)避免被不怀好意的朋友盗用…设置流量告警 当然土豪请随意!

    最后!代码放出(全文件前端后端打包也一并奉上)

    PHP API 1(上传不修改源文件名版)

    <?php
    // * item: PHP 阿里云上传
    // * By: Lucky
    // * Blog: www.zai1.com
    // * 一起学习一起进步!
    require 'aliyun-oss-php-sdk/autoload.php'; // 阿里云SDK
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    // 阿里云OSS配置
    $accessKeyId = 'LTAI5t9ACSTt8S3VcDveM5593';//如参数名
    $accessKeySecret = 'NqbJQFTiG82PYDuZDv7lhpmE2eT3Y71';//如参数名
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';//阿里云OSSendpoint 在OSS概览里可以看到 注意http和https 如果你是https 则需要填写https://oss-cn-你的OSS地域.aliyuncs.com
    $bucket = 'jsyunduan';//上传到那个OSS空间
    
    // 初始化OSS客户端
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        die('OSS初始化失败:' . $e->getMessage());
    }
    
    // 检查文件上传是否成功
    if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
        $tmpName = $_FILES['file']['tmp_name'];
        $originalName = $_FILES['file']['name'];
    
        // 上传文件到OSS
        try {
            $ossClient->uploadFile($bucket, $originalName, $tmpName);
        } catch (OssException $e) {
            die('文件上传失败:' . $e->getMessage());
        }
    
        // 构建OSS文件访问链接
        $objectUrl = $ossClient->signUrl($bucket, $originalName, 3600);
    
        // 移除URL中的授权参数
        $objectUrl = preg_replace('/\?.*/', '', $objectUrl);//如果你上传后返回的URL携带参数可以去除,不去除:注释掉
        // 返回 JSON 响应
        $response = ['success' => true, 'link' => $objectUrl];//返回去除后的
    } else {
        // 返回 JSON 响应
        $response = ['success' => false];
    }
    
    header('Content-Type: application/json');
    echo json_encode($response);//返回给前端
    ?>

    PHP API 2(上传后为文件更名为MD5)

    image.png

    修改为MD5版本可以防止文件名重复导致的覆盖

    <?php
    // * item: PHP 阿里云上传
    // * By: Lucky
    // * Blog: www.zai1.com
    // * 一起学习一起进步!
    require 'aliyun-oss-php-sdk/autoload.php'; // 阿里云SDK
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    // 阿里云OSS配置
    $accessKeyId = 'LTAI5t9ACSTt8S3VcDveM5599'; // 如参数名
    $accessKeySecret = 'NqbJQFTiG82PYDuZDv7lhpmE2eT3Yc6'; // 如参数名
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'; // 阿里云OSS endpoint 同API 1 的解释、不多赘述。
    $bucket = 'jsyunduan'; // 上传到哪个OSS空间
    
    // 初始化OSS客户端
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        die('OSS初始化失败:' . $e->getMessage());
    }
    
    // 检查文件上传是否成功
    if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
        $tmpName = $_FILES['file']['tmp_name'];
    
        // 生成新的文件名,使用文件内容的MD5值作为新文件名
        $newFileName = md5_file($tmpName); // 获取文件内容的MD5值
        $fileExtension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); // 获取文件扩展名
        $objectName = $newFileName . '.' . $fileExtension; // 拼接新文件名和文件扩展名
    
        // 上传文件到OSS并指定新文件名
        try {
            $ossClient->uploadFile($bucket, $objectName, $tmpName);
        } catch (OssException $e) {
            die('文件上传失败:' . $e->getMessage());
        }
    
        // 构建OSS文件访问链接
        $objectUrl = $ossClient->signUrl($bucket, $objectName, 3600);
    
        // 移除URL中的授权参数
        $objectUrl = preg_replace('/\?.*/', '', $objectUrl); // 如果你上传后返回的URL携带参数可以去除。
    
        // 返回 JSON 响应,包括新的文件名
        $response = ['success' => true, 'link' => $objectUrl, 'newFileName' => $objectName];
    } else {
        // 返回 JSON 响应
        $response = ['success' => false];
    }
    
    // 返回给前端
    header('Content-Type: application/json');
    echo json_encode($response);
    ?>
    [hidecontent type=”reply”]

    下载:https://t7g.lanzouj.com/iqDCc1e9aa4j 密码:cx0b

    不用我打包的SDK可以去阿里云Github 自己下载一份

    https://github.com/aliyun/aliyun-oss-php-sdk?spm=5176.8466032.tools.dphp-github.49ca1450y72vVP

    [/hidecontent]