作者: lucky

  • 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");
  • 51la 疑似服务宕机

    忙了一天回来进站发现,网站一直加载我以为是 cdn那边出现了问题,由于是手机也没法看,抓包看了下 51la的统计 js 已经没有响应。

    进入 51la 官网也是无响应。

    破案了 阿里云的问题!!

  • 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]
  • JS禁止控制台调试代码

    setInterval(() => {
    (function (a) {return (function (a) {return (Function('Function(arguments[0]+"' + a + '")()'))})(a)})('bugger')('de', 0, 0, (0, 0));
    }, 1000);

    要解决也很简单:

  • JS定时每小时指定分钟跳转指定网页代码

    纯JavaScript脚本,在每小时的指定分钟内跳转到指定网址代码。

    功能:检查时间是否为设置的时间范围,如果是则跳转,如果不是则不跳转。

    可以自己写个定时检查 比如30秒检查一次,如果到了指定时间点就开始跳转,这样可以:比如他19分打开的网页,定时30秒检查到现在是20分了也会跳转。

    可以将跳转网页,修改成其他操作~

    仅供学习交流

    function redirectToBaidu() {
        window.location.href = "https://zai1.com";
    }
    
    function checkAndRedirect() {
        const currentDate = new Date();
        const currentHour = currentDate.getHours();
        const currentMinute = currentDate.getMinutes();
    
        // 判断是否在指定时间范围内 每小时的20分钟-30分钟
        if (currentMinute >= 20 && currentMinute <= 30) {
            redirectToBaidu();//执行跳转
        }
    }
    
    // 现在是运行脚本后立即检查时间是否在指定范围内,只检查一次。
    checkAndRedirect();//运行检查
    //可以写个定时检查 比如30秒检查一次,如果到了指定时间点就开始跳转。
    //这样可以比如他19分打开的网页,定时30秒检查到现在是20分了也会跳转
  • 公共CSS/JS搜索平台源码基于cdnjsApi

    这是基于cdnjs来做的js与css库搜索网页,方便快速寻找你需要的项目所依赖的库,并且直接提供cdnjs的静态公共链接与下载。完全基于Html与js完成。使用layui框架元素;API接口来源 cdnjs。

    搜索js得到的静态链接试例:cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.2/js/bootstrap.min.js

    截图:

    乱码请增加以下头

    <meta charset="UTF-8">

    添加到网站名下方即可

    [hidecontent type=”logged”]

    下载:https://t7g.lanzouj.com/ir21y1eacbwb 密码:h5hy

    [/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]

  • Hello Word

    这是我的第一篇博文