首页
网站统计
关于梦云
小姐姐在线跳舞
更多
友情链接
留言/反馈
直播
Search
1
梦云建站充值额度api使用教程
199 阅读
2
为typecho joe主题添加一个随机笑话页面
192 阅读
3
zyyo个人主页独立后台版
59 阅读
4
Typecho 首款支持黑暗模式的简洁后台美化插件!Typecho免费插件
45 阅读
5
Brave勇敢爱(魔改版)Typecho主题 - 恋爱历程记录主题
41 阅读
技术分享
原创程序
梦云建站
源码分享
个人主页源码
Typecho主题
网站源码
Typecho插件
WordPress主题
日常分享
登录
/
注册
找到
8
篇与
技术分享
相关的结果
2025-01-24
用 CSS 打造梦幻新年贺卡,让动画“动”起来!
新年将至,用代码送上一份特别的祝福吧!今天,我们用 HTML 和 CSS 创作一张充满动感的新年贺卡。通过 CSS 动画技术,贺卡上的装饰元素仿佛被赋予了生命,为节日增添了一份灵动的氛围。 演示效果 1000236870.gif图片 HTML&CSS <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>公众号关注:前端Hardy</title> <style> body { margin: 0; padding: 0; background: #e8e8e8; display: flex; align-items: center; justify-content: center; height: 100vh; } .card { width: 200px; height: 200px; transition: all 0.2s; position: relative; cursor: pointer; } .card-inner { width: inherit; height: inherit; background: rgba(255, 255, 255, 0.05); box-shadow: 0010pxrgba(0, 0, 0, 0.25); backdrop-filter: blur(10px); border-radius: 8px; text-align: center; line-height: 200px; font-size: 18px; } .card:hover { transform: scale(1.04) rotate(0deg); } .circle { width: 100px; height: 100px; background: repeating-linear-gradient(48deg, #3023ae 0%, #ff0099 100%); border-radius: 35%30%75%30% / 49%30%70%51%; position: absolute; animation: move-up6 2s ease-in infinite alternate-reverse; } .circle:nth-child(1) { top: -25px; left: -25px; } .circle:nth-child(2) { bottom: -25px; right: -25px; animation-name: move-down1; } @keyframes move-up6 { to { transform: translateY(-10px); } } @keyframes move-down1 { to { transform: translateY(10px); } } </style> </head> <body> <div class="card"> <div class="circle"></div> <div class="circle"></div> <div class="card-inner"> 新年快乐 </div> </div> </body> </html>HTML 结构 card: 创建一个类名为“card”的 div 元素,用于包含卡片的内容。 circle: 创建两个类名为“circle”的 div 元素,用于显示动画效果的圆圈。 card-inner: 包含“新年快乐”文本的 div 元素,类名为“card-inner”。 CSS 样式 .body: 设置页面的边距、填充、背景色、显示方式和高度。 .card: 设置卡片的尺寸、过渡效果、位置和鼠标指针样式。 .card-inner: 设置卡片内部元素的尺寸、背景、阴影、模糊效果、边框半径、文本对齐、行高和字体大小。 .card:hover: 设置鼠标悬停在卡片上时的变换效果。 .circle: 设置圆圈的尺寸、背景、边框半径和位置。 .circle:nth-child(1) 和 .circle:nth-child(2): 分别设置两个圆圈的位置。 @keyframes move-up6 和 @keyframes move-down1: 定义两个关键帧动画,分别用于控制圆圈上下移动的效果。 .circle: 通过 animation 属性应用了 move-up6 动画,使第一个圆圈向上移动。 .circle:nth-child(2): 通过 animation-name 属性应用了 move-down1 动画,使第二个圆圈向下移动。
技术分享
# html代码
# 新年贺卡
# HTMLcss新年贺卡
梦云
昨天
0
3
0
2025-01-24
为什么 PHP 开发者需要掌握 Swoole?
在现代 Web 开发中,PHP 程序员面临着诸多挑战,其中最突出的便是性能和并发处理问题。尽管 PHP 在单线程应用中表现出色,但在面对高并发、大流量请求时,原生 PHP 的性能和扩展性往往难以满足需求。因此,越来越多的 PHP 开发者开始学习并使用 Swoole。以下是 PHP 程序员学习 Swoole 的几个重要理由: 1. 提升并发处理能力 PHP 默认采用请求-响应模型,每次请求都会创建一个新的进程或线程。这种模式虽然简单,但在高并发场景下容易导致性能瓶颈。Swoole 提供了协程、多线程和多进程等多种先进的并发处理机制,极大地提升了 PHP 程序的并发处理能力。 协程支持:Swoole 的协程允许程序在同一线程内执行多个任务,避免了传统阻塞式 IO 操作,显著提高了程序效率。 多进程/多线程扩展:Swoole 支持通过多进程和多线程扩展应用的并发能力,非常适合 Web 服务器、消息队列、爬虫等需要处理大量并发请求的场景。 2. 构建高性能 Web 服务器 传统的 PHP 应用依赖于 Apache 或 Nginx + PHP-FPM 架构,每个请求都需要通过 PHP-FPM 进程池处理,且每个请求占用一个独立的进程或线程,这不仅消耗大量系统资源,还难以在高并发场景下保持良好性能。 相比之下,Swoole 是一个高性能的 HTTP 服务器,采用事件驱动模型和异步 IO,能够高效处理大量并发请求。Swoole 不仅支持 HTTP 协议,还支持 WebSocket、TCP/UDP 等多种协议。使用 Swoole 构建的 HTTP 服务器可以轻松应对数万个并发请求,且在内存和 CPU 使用上比 PHP-FPM 更高效。 示例:用 Swoole 构建一个简单的 HTTP 服务器<?php // 使用 Swoole 创建一个简单的 HTTP 服务器 use Swoole\Http\Server; $server = new Server("0.0.0.0", 9501); $server->on('request', function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello, Swoole!"); }); $server->start();3. 降低资源消耗 在高并发场景下,原生 PHP-FPM 模型的每个请求都会占用一定的内存和 CPU 资源,容易造成资源浪费。Swoole 通过协程和事件驱动模型大幅降低了内存消耗和 CPU 使用。在 Swoole 中,同一个进程可以通过协程并行处理多个任务,避免了频繁创建和销毁进程或线程,减少了系统开销。因此,在高并发场景下,Swoole 的资源消耗远低于传统的 PHP-FPM 方式。 例如,使用 Swoole 可以实现异步非阻塞的数据库查询:use Swoole\Coroutine\MySQL; Swoole\Coroutine\run(function () { $mysql = new MySQL(); $mysql->connect([ 'host' => 'localhost', 'user' => 'root', 'password' => 'password', 'database' => 'test', ]); // 异步查询 $result = $mysql->query('SELECT * FROM users'); var_dump($result); });4. 提供高效的 WebSocket 支持 WebSocket 是一种基于 TCP 的全双工协议,支持实时、双向通信,适用于即时聊天、实时通知等场景。虽然 PHP 原生不支持 WebSocket 协议,但 Swoole 提供了强大的 WebSocket 服务器支持,能够轻松实现 WebSocket 功能。这使得 PHP 开发者可以更高效地开发实时交互应用,满足现代 Web 应用对实时性的需求。 5. 高效的 WebSocket 支持 WebSocket 是一种基于 TCP 的全双工协议,它能够支持实时、双向的通信,非常适合即时聊天、实时通知等场景。PHP 原生并不支持 WebSocket 协议,但 Swoole 提供了 WebSocket 服务器 的支持,可以非常方便地实现 WebSocket 功能。 示例:用 Swoole 实现 WebSocket 服务器use Swoole\Websocket\Server; $server = new Server("0.0.0.0", 9502); $server->on('open', function ($server, $request) { echo "Connection open: {$request->fd}\n"; }); $server->on('message', function ($server, $frame) { echo "Received message: {$frame->data}\n"; $server->push($frame->fd, "Hello, WebSocket client!"); }); $server->on('close', function ($server, $fd) { echo "Connection closed: {$fd}\n"; }); $server->start();6. 实时推送 Swoole 的 WebSocket和异步任务能力使得它非常适合实现 实时推送 系统,例如在线聊天、在线游戏、实时通知等功能。通过 Swoole,PHP 开发者可以轻松实现低延迟、高并发的实时推送服务。 7. 微服务和 API 网关架构 Swoole可以轻松集成到微服务架构中,作为微服务的网关或通信中间件。通过其高效的 HTTP 和 WebSocket 支持,PHP 开发者可以在 Swoole 上实现微服务的接口调用和消息传递,构建高效的分布式系统。 8. 提升 PHP 的开发体验 Swoole引入了协程和异步编程模型,使得 PHP 开发者可以更高效地处理并发问题,而不需要关注传统的回调地狱或线程池管理。使用 Swoole,PHP 开发者可以像开发同步代码一样编写异步程序,开发体验大大提升。 9. 更多的内置功能 Swoole除了提供 HTTP、WebSocket、TCP/UDP 支持外,还包括了很多内置功能,如定时器、进程管理、协程管理等,使得 PHP 程序员可以更方便地实现高效的并发任务。Swoole 本身也有像 Redis 客户端、MySQL 客户端 等内置的高性能客户端,进一步减少了外部依赖。 10. 大规模并发下的性能提升 Swoole 适合高并发、大流量应用,尤其是在需要处理大量并发请求时,它比传统的 PHP-FPM 更加高效。对于需要大规模并发、长连接或者实时通信的应用,Swoole 提供了卓越的性能。 总之,Swoole 为 PHP 开发者提供了一种更高效、更强大的开发工具,帮助他们在高并发和高性能场景下更好地应对挑战。无论是提升并发处理能力,还是构建高性能 Web 服务器,Swoole 都是 PHP 开发者不可或缺的利器。
技术分享
# php
# Swoole
# WebSocket
梦云
昨天
0
2
0
79K Star!专为开发者打造的超酷UI组件库
在现代前端开发中,一个高效、灵活且易于定制的UI组件库是开发者不可或缺的工具。今天,我们为你介绍一个基于React构建的现代前端UI组件库,它凭借其独特的设计理念和强大的功能,迅速在开发者社区中崭露头角,赢得了广泛的关注和赞誉。 1000231377.png图片 高度定制化,满足多样化需求 该组件库的最大优势在于其高度的定制性。开发者可以直接访问组件的源代码,从而实现从外观到功能的全面定制。无论是微调样式,还是深度修改逻辑,都能轻松完成。这种灵活性使得开发者能够根据项目的具体需求,打造出独一无二的用户体验。 1000231378.png图片 丰富的文档与示例代码 为了让开发者快速上手,该组件库提供了简洁明了的文档和丰富的示例代码。无论是新手还是经验丰富的开发者,都能通过这些资源迅速了解组件的使用方法,并将其应用到实际项目中。详细的文档和实用的示例代码,让开发过程更加高效。 1000231379.png图片 简化的开发流程 为了进一步提升开发效率,该组件库支持通过终端命令快速集成组件。开发者只需运行简单的命令,即可将所需的组件无缝集成到项目中。这种简化的开发流程,大大减少了手动配置的时间和精力,让开发者可以专注于核心功能的开发。 1000231380.png图片 遵循无障碍标准,确保包容性 在现代Web开发中,无障碍性是一个至关重要的考量因素。该组件库完全遵循Web内容无障碍指南(WCAG)标准,支持屏幕阅读器、键盘导航等辅助功能。这意味着开发者可以轻松构建出对所有用户都友好的应用程序,无论他们是否依赖辅助技术。 为什么选择这个组件库? 高度定制化:直接访问组件源代码,轻松调整外观和功能。 高效开发:通过终端命令快速集成组件,简化开发流程。 易于上手:提供详细的文档和丰富的示例代码,帮助开发者快速入门。 无障碍支持:遵循WCAG标准,确保应用程序的包容性。 总之,这个基于React的UI组件库不仅功能强大,而且易于使用。它为开发者提供了高度的定制性、完善的文档支持以及简化的开发流程,同时还确保了应用程序的无障碍性。如果你正在寻找一个能够提升开发效率并打造优秀用户体验的组件库,那么它绝对值得你尝试! 项目地址 shadcn-ui 下载地址:https://github.com/shadcn-ui/ui 提取码:
技术分享
# shadcn-ui
# 好看的UI
梦云
2天前
0
3
0
Windows 11系统优化新选择:一款高效实用的工具推荐
在日常使用Windows 11系统的过程中,不少用户都希望能对系统进行一些个性化设置与优化,比如卸载掉一些不太常用的内置应用,或是关闭自带的某些功能等,但这些操作有时会让人感觉无从下手。别担心,今天就来给大家介绍一款小巧而强大的工具——「Windows 11智能优化助手」,它仅有300KB的体积,却能帮你轻松搞定诸多系统优化难题。 功能详解 关闭Win 11自带的「Windows安全中心」 在Win 11最新版24H2上实测有效。操作流程是:先打开Windows安全中心,进入“病毒和威胁防护”选项,将实时保护与篡改防护的开关关闭。之后,启动「Windows 11智能优化助手」,在Defender标签页中点击“一键禁用WD”,完成操作后重启电脑,即可实现禁用效果。 1000230811.png图片 1000230812.png图片 移除系统内置应用 通过切换到Apps标签,用户可以清晰地看到系统内置的各种应用,如照片、计算器、时钟等。只需点击对应应用旁的“卸载”按钮,就能轻松移除。左侧提供了“当前用户应用管理”和“系统预装应用卸载”两个选项。系统预装应用是指在新建账户时会自动安装的应用,一旦卸载,新建账户时便不会再安装;而当前用户应用管理则只针对当前账户下的应用进行卸载。卸载这些预装应用,能够有效释放磁盘空间。对于单账户用户,直接卸载预装应用即可;若有多账户,建议仅卸载当前账户的应用,以免影响其他账户的正常使用。 1000230813.png图片 1000230814.png图片 卸载Edge浏览器 目前,只有Win 11 LTSC版本允许通过系统自带功能卸载Edge浏览器,其他版本则需要借助第三方工具来完成。使用「Windows 11智能优化助手」,点击主界面下方的“Edge”按钮,就能轻松实现Edge及WebView2的卸载或安装操作,还能便捷地设置“禁止Edge启动增强功能”,如开机启动、后台驻留等。 1000230815.png图片 一键安装常用软件 该工具为用户提供了装机必备软件的一键安装功能,且安装的均为官方原版软件。例如,想要安装WPS专业增强版(集美大学版),只需点击“一键安装”按钮,静待安装完成即可。 1000230820.png图片 1000230818.png图片 1000230819.png图片 1000230816.png图片 1000230817.png图片 Explorer设置与其他个性化设置 在这里,用户可以对文件资源管理器进行多种个性化设置,如切换至Win 10资源管理器风格、恢复Win 10风格的右键菜单、禁用OneDrive、去除快捷方式的小箭头等;还能对任务栏进行设置,如自动隐藏任务栏、调整对齐方式、设置系统托盘时间显示等。 1000230822.png图片 此外,其他设置中还包含了系统休眠、修改Hosts等功能,满足用户更多个性化需求。 1000230822.png图片 系统与高级设置 包括系统设置和高级设置两大板块。将鼠标悬停在每个标题上,会显示相应的提示文字,部分功能还提供了操作建议,用户可根据自身需求自行查看并进行设置。 1000230823.png图片 1000230824.png图片 1000230825.png图片 隐私设置优化 通过这一功能,用户可以对Windows的隐私设置进行全面优化,将与隐私安全相关的选项全部禁用,从而更好地保护个人隐私。 1000230826.png图片 下载地址 隐藏内容,请前往内页查看详情
免费资源
技术分享
日常分享
# Win11系统优化
# 系统工具
# win11应用卸载
# 软件安装
# Win11系统设置优化
梦云
1月17日
1
22
0
2024-11-09
腾讯微云盘做图片外链教程-免费不限速
为什么选择腾讯微云盘 现在很多外链平台都有限速而且不是很稳定 使用教程 下载腾讯微云盘APP https://www.weiyun.com/ 上传一张图片点击分享 腾讯微云教程图片 浏览器打开链接,然后长按打开图片 腾讯微云做外链教程图片 打开的图片地址就是可以直接使用的外链地址 腾讯微云做外链教程图片 测速图片 测速图片 如何使用腾讯微云进行SEO优化 - 简介 在当今的数字营销领域,搜索引擎优化(SEO)对于提高网站可见性和吸引流量至关重要。腾讯微云作为一个强大的云存储服务,可以被用作图床,帮助网站管理员优化图片存储和加载速度,从而提升SEO效果。本文将详细介绍如何使用腾讯微云进行SEO优化。 内部链接优化 内部链接对于改善用户导航和搜索引擎爬虫的理解至关重要。通过合理布局内部链接,可以提高网站的整体SEO表现。 网站速度优化 网站速度是SEO的关键因素之一。优化图像、文件压缩和延迟加载等可以显著提高网站加载速度,改善用户体验,减少跳出率。 移动友好性 确保网站对移动设备友好,使用响应式设计,以提高移动搜索排名。移动用户越来越多,优化移动体验对于SEO至关重要。 外部链接建设 高质量的外部链接可以显著提升网站排名。通过发布优质内容、与其他网站建立合作关系和参与社交媒体等方式,吸引其他网站链接到您的网站。 社交媒体优化 社交媒体平台是推广网站和内容的重要渠道。通过分享、转发和评论等方式,增加网站的曝光度和流量。 图片标签优化 为图片添加ALT标签和描述性文本,有助于搜索引擎理解图片内容,提升图片在搜索结果中的曝光度。同时,优化图片大小和格式,以提高网站加载速度。 用户体验 优化网站的加载速度、响应式设计、易用性和移动端适配等因素,能够提升用户对网站的满意度和停留时间,间接影响搜索引擎对网站的评价。 持续优化和最佳实践 SEO是一个持续的过程,需要定期更新和调整。遵循搜索引擎指南,避免黑帽SEO,以确保长期稳定的排名。 使用SEO工具和分析 使用SEO工具进行关键词研究、排名跟踪和竞争分析。同时,使用Google Analytics来跟踪流量、行为和转化,以便更好地理解用户行为并优化网站。 结论 通过实施上述SEO优化策略,您可以提高腾讯微云图片外链在搜索引擎中的排名,吸引更多的有价值流量,并提升用户体验。SEO是一个需要持续关注和优化的过程,但通过正确的策略和工具,您可以显著提高您的网站表现。
技术分享
# 腾讯微云盘
# 腾讯微云盘做图片外链
# 技术分享
梦云
1年前
5
24
1
2024-11-03
joe主题缩略图➕圆角
修改主页缩略图代码 body { --theme: #00ffef; --background: #ffffff; --main: #303133; --routine: #606266; --minor: #909399; --seat: #c0c4cc; --classA: #dcdfe6; --classB: #e4e7ed; --classC: #ebeef5; --classD: #f2f6fc; --radius-wrap: 10px; --radius-inner: 15px; --text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); --box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22); } ...演示图 20241103194002Aicy.png图片
技术分享
# Typecho主题
# joe主题美化
梦云
1年前
0
21
0
2024-10-18
阿里云无门槛300元代金卷免费领取
阿里云高校学生权益,300元代金卷免费领取 S41018-01333570_com.android.browser(1).png图片 可免费开通2h2g 40g的ECS服务器一年 S41018-01375798_com.android.browser(1).png图片 代金卷有一年有效期 S41018-01351715_com.alibaba.aliyun(1).png图片 领取地址 阿里云300元代金卷/点击领取 注意 一年的版本需要在单独购买宽带 建议买3个月那款有宽带
技术分享
# 服务器推荐
# 阿里云300元代金卷
梦云
1年前
1
170
2
2022-11-18
为typecho joe主题添加一个随机笑话页面
为typecho joe主题添加一个随机笑话的独立页面 演示图片 演示页面 https://www.8b18.com/22.html 使用方法 1在joe主题根目录随便创建一个.php文件将代码粘贴进去 2在后台添加独立页面选择笑话模板 具体代码 <?php /** * 笑话 * * @package custom * **/ ?> <?php $API_KEY = '7e9401a58dc937d2d827a09fc39f37a3'; $API_URL = 'http://v.juhe.cn/joke/randJoke.php'; $get_post_data = array( 'key' => $API_KEY, ); $sk = 'e80d5492e21e7390907b97076cb770a5'; $resdata = api::send($API_URL, $get_post_data, 'POST', true, $sk); $cc= json_decode($resdata)->result; // var_dump($cc); $bb =serialize($cc); class api { public static function send($API_URL, $get_post_data, $type, $ifsign, $sk) { $get_post_data = http_build_query($get_post_data); if ($ifsign) { $sign = md5($get_post_data . $sk); $res = self::send_curl($API_URL, $type, $get_post_data, $sign); } else { $res = self::send_curl($API_URL, $type, $get_post_data, null); } return $res; } public static function send_curl($API_URL, $type, $get_post_data, $sign) { $ch = curl_init(); if ($type == 'POST') { curl_setopt($ch, CURLOPT_URL, $API_URL); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data); } elseif ($type == 'GET') { curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data); } if ($sign) { curl_setopt($ch, CURLOPT_HTTPHEADER, ['sign:' . $sign]); } curl_setopt($ch, CURLOPT_REFERER, $API_URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $resdata = curl_exec($ch); curl_close($ch); return $resdata; } } ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <?php $this->need('public/include.php'); ?> <?php if ($this->options->JPrismTheme) : ?> <link rel="stylesheet" href="<?php $this->options->JPrismTheme() ?>"> <?php else : ?> <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/prismjs@1.23.0/themes/prism.min.css"> <?php endif; ?> <script src="https://fastly.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js"></script> <script src="https://fastly.jsdelivr.net/npm/typecho-joe-next@6.2.4/plugin/prism/prism.min.js"></script> <script src="<?php $this->options->themeUrl('assets/js/joe.post_page.min.js'); ?>"></script> </head> <body> <div id="Joe"> <?php $this->need('public/header.php'); ?> <div class="joe_container"> <div class="joe_main"> <div class="joe_detail" data-cid="<?php echo $this->cid ?>"> <?php $this->need('public/batten.php'); ?> <?php $this->need('public/article.php'); ?> <?php $friends = []; $friends_color = [ '#F8D800', '#0396FF', '#EA5455', '#7367F0', '#32CCBC', '#F6416C', '#28C76F', '#9F44D3', '#F55555', '#736EFE', '#E96D71', '#DE4313', '#D939CD', '#4C83FF', '#F072B6', '#C346C2', '#5961F9', '#FD6585', '#465EFB', '#FFC600', '#FA742B', '#5151E5', '#BB4E75', '#FF52E5', '#49C628', '#00EAFF', '#F067B4', '#F067B4', '#ff9a9e', '#00f2fe', '#4facfe', '#f093fb', '#6fa3ef', '#bc99c4', '#46c47c', '#f9bb3c', '#e8583d', '#f68e5f', ]; $friends_text = $this->options->JFriends; if ($friends_text) { $friends_arr = explode("\r\n", $friends_text); if (count($friends_arr) > 0) { for ($i = 0; $i < count($friends_arr); $i++) { $name = explode("||", $friends_arr[$i])[0]; $url = explode("||", $friends_arr[$i])[1]; $avatar = explode("||", $friends_arr[$i])[2]; $desc = explode("||", $friends_arr[$i])[3]; $friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc)); }; } } ?> <ul class="joe_detail__friends"> <?php foreach ($cc as $xh) : ?> <li class="joe_detail__friends-item"> <a class="contain" href="<?php echo $item['url']; ?>" target="_blank" rel="noopener noreferrer" style="background: <?php echo $friends_color[mt_rand(0, count($friends_color) - 1)] ?>"> <span class="title"><?php echo $xh->title; ?></span> <div class="content"> <div class="desc"><?php echo $xh->content; ?></div> </div> </a> </li> <?php endforeach; ?> </ul> <?php $this->need('public/handle.php'); ?> <?php $this->need('public/copyright.php'); ?> </div> <?php $this->need('public/comment.php'); ?> </div> <?php $this->need('public/aside.php'); ?> </div> <?php $this->need('public/footer.php'); ?> </div> </body> </html>
技术分享
梦云
3年前
0
192
1