小枫_QWQ 发布的文章 - Welcome to - 小枫的Blog
首页
留言墙
关于我
网站统计
友情链接
网站通知/变更日志
推荐
子辰API
子辰聊天室
Search
1
关于图片问题
65 阅读
2
hello world!
61 阅读
3
给你的网页添加动态背景😎
53 阅读
4
如何给自己的网站添加免费SSL?
46 阅读
5
换了新图床
44 阅读
typecho
闲聊杂谈
网站前后端
通知
登录
/
注册
找到
33
篇与
小枫_QWQ
相关的结果
2025-01-17
新一代聊天室 - 子辰聊天室
这是一个为个人用户设计的简洁聊天室,前端基于Bootstrap CSS框架,后端使用PHP开发,并配备了完整的后台管理系统。 它可以在任何虚拟主机上运行,服务器要求极低, 任何支持PHP 8.2的免费虚拟主机都可以轻松支持。演示地址:https://chat.zicheng.icu/ 预览: 隐藏内容,请前往内页查看详情 Gitee链接:https://gitee.com/XiaoFengQWQ/zichen-web-chat-room Nginx需要配置以下伪静态 if (!-d $request_filename){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite ^/(.+)/$ /$1 permanent; } #ignored: "-" thing used or unknown variable in regex/rew if (!-f $request_filename){ set $rule_2 1$rule_2; } if (!-d $request_filename){ set $rule_2 2$rule_2; } if ($rule_2 = "21"){ rewrite ^/(.*)$ /index.php?/$1 last; }
通知
# 子辰在线聊天室
小枫_QWQ
昨天
0
1
0
2025-01-13
为你的博客添加AI总结!
前提条件: 注册 https://www.xfyun.cn/ 访问 https://console.xfyun.cn/app/myapp 创建应用侧边栏选择 Spark Lite 复制 APIPassword 开始修改! 1. 在Jon主题目录下的 /module/single/ 创建AISummary.php内容为: <?php function AISummary($content) { $url = "https://spark-api-open.xf-yun.com/v1/chat/completions"; $data = [ "model" => "lite", "messages" => [ [ "role" => "user", "content" => $content . "\n\n\n\n为这篇文章做个不超过200字的总结" ] ] ]; $headers = [ "Authorization: Bearer 你的APIPassword", "Content-Type: application/json" ]; // 初始化cURL会话 $ch = curl_init($url); // 滚草泥马,不验证SSL证书 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // 执行cURL请求 $response = curl_exec($ch); // 检查是否有错误 if (curl_errno($ch)) { echo 'cURL error: ' . curl_error($ch); } // 关闭cURL会话 curl_close($ch); $response = json_decode($response, true, 1024); return $response["choices"][0]['message']['content']; } ?> <div class="panel-b"> <div class="ai-summary-block"> <p><span class="typing-effect"><?= AISummary($this->content) ?></span></p> </div> <style> .typing-effect { white-space: nowrap; overflow: hidden; animation: typing 2s steps(40) forwards; } @keyframes typing { from { width: 0; } to { width: 100%; } } .panel-b { overflow-y: scroll; } </style> <script> document.addEventListener('DOMContentLoaded', function() { const typingElements = document.querySelectorAll('.typing-effect'); typingElements.forEach(element => { element.classList.remove('typing-effect'); const text = element.textContent; element.textContent = ''; let i = 0; const typingInterval = setInterval(() => { if (i < text.length) { element.textContent += text[i]; i++; } else { clearInterval(typingInterval); } }, 50); }); }); </script> </div> <div class="relative"> <div class="flex ac single-metabox abs-right"> <div class="post-metas"> <i class="fa fa-twitch" style="font-size: 1.0em; font-weight:bold;"></i> <item class="meta-comm">AI摘要</item> </div> </div> <i class="line-form-line"></i> </div>2. 还是在当前目录修改 article.php <article class="joe_detail__article" data-nav="posts"> <?php下面添加一行 require_once 'AISummary.php'; 添加完成!
网站前后端
# 网站美化
小枫_QWQ
4天前
0
7
0
2025-01-12
XQFUI - 轻量级响应式 UI 组件库
XQFUI是一个温暖而简约的CSS组件库,专为优雅舒适的视觉体验设计。采用金色和米黄色等柔和色调,实现自然与现代的平衡。适用于各种网站和应用场景。从按钮到卡片,从打字动画到响应式布局,XQFUI使界面既现代又温馨活力。
网站前后端
# 网站前端
小枫_QWQ
5天前
0
1
0
2024-12-22
什么恶趣味
IMG_20241222_171114.jpg图片 IMG_20241222_171154.jpg图片 Screenshot_2024-12-22-16-46-27-416_com.microsoft.emmx.jpg图片 Image_6501287880122.jpg图片
闲聊杂谈
# 闲聊杂谈
小枫_QWQ
1年前
0
19
0
2024-12-01
子辰聊天室1.2.0.0发布了!
发布页: https://bri6.cn/archives/405.html 开源主仓库: https://github.com/XiaoFeng-QWQ/zicheng-web-chat-room 开源镜像: https://gitee.com/XiaoFengQWQ/zichen-web-chat-room (可能不保证实时更新) 更改: 聊天支持上传文件,指令列表新增投票 部分CSS、布局优化 优化部分代码 实现方法: 支持文件上传: 1. 检查文件是否上传成功 if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) { isset($_FILES['file']): 检查是否存在上传的文件。 $_FILES['file']['error'] === UPLOAD_ERR_OK: 检查文件上传是否成功,UPLOAD_ERR_OK 表示没有错误发生。$_FILES['file']['error'] 是文件上传的错误码。 2. 获取文件的 MIME 类型 $fileType = mime_content_type($_FILES['file']['tmp_name']); mime_content_type($_FILES['file']['tmp_name']):通过 mime_content_type 函数获取文件的 MIME 类型。该函数根据文件内容而不是文件扩展名来判断文件类型。 3. 检查文件的 MIME 类型是否在允许范围内 $allowed = false; if (in_array($fileType, $chatConfig->uploadFile['allowTypes'])) { $allowed = true; } if (!$allowed) { respondWithJson(ChatController::STATUS_WARNING, '无效的文件类型'); } $chatConfig->uploadFile['allowTypes']:这是一个允许的文件类型列表(通常是数组),可能包含诸如 'image/jpeg', 'image/png' 等类型。 in_array($fileType, $chatConfig->uploadFile['allowTypes']):检查文件的 MIME 类型是否在允许的类型数组中。 如果文件类型不被允许,返回一个警告信息 '无效的文件类型'。 4. 检查文件的大小是否超过限制 if ($_FILES['file']['size'] > $chatConfig->uploadFile['maxSize']) { respondWithJson(ChatController::STATUS_WARNING, '文件太大'); } $_FILES['file']['size']:获取上传文件的大小(单位字节)。 $chatConfig->uploadFile['maxSize']:最大文件大小限制。 如果文件大小超出了限制,返回 '文件太大' 的警告信息。 5. 创建上传目录(如果不存在) $uploadDir = FRAMEWORK_DIR . "/StaticResources/uploads/" . date('Y/m/d') . "/u_{$userInfo['user_id']}/"; if (!is_dir($uploadDir) && !mkdir($uploadDir, 0777, true)) { respondWithJson(ChatController::STATUS_ERROR, '无法创建上传目录'); } 通过当前日期(年、月、日)来组织上传文件的目录结构:/StaticResources/uploads/Y/m/d/u_user_id/。 is_dir($uploadDir): 检查目录是否存在。 mkdir($uploadDir, 0777, true): 如果目录不存在,创建该目录,权限为 0777,true 表示递归创建不存在的目录。 如果创建失败,返回错误信息 '无法创建上传目录'。 6. 生成唯一的文件名并保存文件 $fileName = time() . "_" . uniqid() . '.' . pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); $filePath = $uploadDir . $fileName; if (!move_uploaded_file($_FILES['file']['tmp_name'], $filePath)) { respondWithJson(ChatController::STATUS_ERROR, '上传失败'); } time() . "_" . uniqid():使用当前时间戳和一个唯一 ID 生成文件名,确保文件名不重复。 pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION):获取上传文件的扩展名。 move_uploaded_file($_FILES['file']['tmp_name'], $filePath):将文件从临时目录移动到指定的目标路径。 如果文件上传失败,返回 '上传失败' 的错误信息。 7. 生成文件的相对路径 $relativeImagePath = $helpres->getCurrentUrl() . "/StaticResources/uploads/" . date('Y/m/d') . "/u_{$userInfo['user_id']}/$fileName"; 生成文件的相对 URL 路径,用于在前端显示或下载文件。$helpres->getCurrentUrl() 获取当前的基础 URL。 8. 生成文件信息模板 function generateFileTemplate($fileData) { $template = '[!file('; foreach ($fileData as $key => $value) { $template .= $key . '="' . $value . '", '; } $template = rtrim($template, ', '); $template .= ')]'; return $template; } 这是一个用于生成文件信息模板的函数。它会将传入的文件数据(如路径、名称、类型、大小等)转化为特定的模板格式,最终返回 [!file(path="xxx", name="xxx", type="xxx", size="xxx", download="true")] 这样的格式。 9. 构建文件信息并添加到消息中 $message .= generateFileTemplate([ 'path' => $relativeImagePath, 'name' => $_FILES['file']['name'], 'type' => $_FILES['file']['type'], 'size' => round($_FILES['file']['size'] / 1024, 2) . 'KB', 'download' => 'true' ]);10. 解析 /** * 解析文件模板字符串,提取其中的文件参数。 * * @param {string} template - 文件模板字符串,格式应为 [!file(key1="value1", key2="value2", ...)] * @returns {Object|null} - 返回一个包含文件参数的对象,如果模板格式不匹配,返回 null。 */ function parseFileTemplate(template) { // 定义正则表达式,用于匹配模板字符串中的内容 const pattern = /\[!file\((.*?)\)\]/; // 使用正则表达式匹配模板字符串 const match = template.match(pattern); // 如果匹配成功 if (match) { // 获取括号内的参数部分,match[1] 是正则匹配到的第一个捕获组 const paramsString = match[1]; // 将参数字符串分割成单个参数,格式为 key=value const params = paramsString.split(',').reduce((acc, param) => { // 分割每个参数为 key 和 value const [key, value] = param.split('='); // 去除键值对两端的空白字符,去除值两端的引号 acc[key.trim()] = value.trim().replace(/^"|"$/g, ''); return acc; }, {}); // 初始值为空对象,用于存储解析后的参数 // 返回解析出的参数对象 return params; } // 如果没有匹配到符合格式的模板,返回 null return null; }样式优化 前台样式优化 后台部分布局优化
通知
# 子辰在线聊天室
小枫_QWQ
1年前
0
18
0
2024-10-13
欢迎加入网页小游戏平台
Small Game Collection | 网页小游戏集合 欢迎来到 Small Game Collection,这是一个开放自由的网页小游戏平台,任何人都可以提交自己的作品!没有任何质量要求,只要你是运行在网页的游戏都可以提交! 项目主页:Small Game Collection 提交基本要求 内容不得包含反动、色情、赌博等不良内容,或提供任何不良内容的链接以及违反中国法律的。 如何提交您的游戏 使用 GitHub 如果您熟悉 GitHub,可通过提交 Pull Request Small Game Collection GitHub 不使用 GitHub 如果您不熟悉 GitHub,请将以下信息发送至我的邮箱或 QQ 号: 游戏源码 游戏名称 作者姓名 游戏描述 创建时间 联系信息 QQ:1432777209 邮箱:1432777209@qq.com 注意 本人上学状态,只有在星期日才能处理请求。
闲聊杂谈
# 闲聊杂谈
# 网站前端
小枫_QWQ
1年前
0
30
0
2024-10-04
子辰聊天室正式版本发布了!
发布页: https://bri6.cn/archives/405.html 开源主仓库: https://github.com/XiaoFeng-QWQ/zicheng-web-chat-room 开源镜像: https://gitee.com/XiaoFengQWQ/zichen-web-chat-room (可能不保证实时更新) [1.0.0.0]【正式版本!】发送消息支持Ctrl+Enter、优化登录逻辑,微调数据库结构,微调部分代码,后台主页支持导出数据 技术细节:GithubCommit
通知
# 更新
# 子辰在线聊天室
小枫_QWQ
1年前
0
13
0
2024-09-15
给你的网页添加动态背景😎
Joe主题教程(仅适用于Joe主题,其他主题请根据实际情况调整) 0.0.1 准备工作 找到并打开站点目录中的 /usr/themes/Joe/assets/css/joe.mode.css 文件。 1.0.0 修改源码 更新 html {} 样式 将 --background: #fff; 修改为 --background: rgba(255, 255, 255, 0.8); 添加以下代码: /* 背景动效实现逻辑 */ --gradation: linear-gradient(270deg, #a8e6cf, #dcedc1, #ffd3b6, #ffaaa5, #ff8b94); 更新 html[data-night='night'] body {} 样式 添加: --gradation: #323335; 1.1.0 完成初步修改 保存并关闭文件。 如果修改后不生效,请编辑 /usr/themes/Joe/module/head.php 文件,找到 assets/css/joe.mode.css,在路径后加上一个问号,例如:assets/css/joe.mode.css?。 2.0.0 自定义CSS设置 打开主题设置。 找到插入代码的选项。 添加以下自定义CSS: @keyframes GradientAnimation { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } body { font-family: 'Arial', sans-serif; background: var(--gradation); background-size: 1000% 1000%; animation: GradientAnimation 15s ease infinite; } 保存设置,200 OK。 3.0.0 完成 一切设置完毕! ::(酷)
网站前后端
# 网站美化
# 网站前端
# typecho
小枫_QWQ
1年前
5
53
3
2024-08-27
子辰聊天室更新到 V1.9.0.0(测试)
子辰聊天室 V1.9.0.0(测试)更新了,更新内容如下 支持发送图片消息 m0cbpllr.png图片 发布页: https://bri6.cn/archives/405.html 开源主仓库: GitHub 开源镜像: Gitee (可能不保证实时更新)
通知
# 更新
# 子辰在线聊天室
小枫_QWQ
1年前
0
34
0
2024-08-19
晨光云 —— 一个争取做性价比最高的服务商
晨光云 — 致力于成为性价比最高的服务商 —————————————————— 香港云服务器(三网骨干 + 电信CN2) 2H2G 6M 仅 ¥16/月 4H4G 10M 仅 ¥26/月 —————————————————— 美国云服务器(三网骨干 + 三网回程联通AS9929) 2H2G 20M 仅 ¥16/月 4H4G 30M 仅 ¥26/月 —————————————————— 虽然服务器价格较高,但我们承诺绝不超开。我们相信,真诚待客才能赢得客户的长期信任。 官网: www.cgyidc.com QQ: 2370694467 QQ群: 957676380
闲聊杂谈
# 广告
小枫_QWQ
1年前
0
39
1
1
2
...
4
下一页
易航博客