网站首页
网站相关
Typecho
Emlog
素材分享
软件工具
游戏程序
Search
1
欧洲卡车模拟2中文破解版
34 阅读
2
网易云/酷狗/酷我/全民音乐API
26 阅读
3
班迪录屏软件免安装破解版
25 阅读
4
【ATS/ETS2】TS存档编辑器 V0.3.10
17 阅读
5
21款动态懒加载图
14 阅读
Search
标签搜索
模版
GTA5
侠盗猎车
模拟
录屏
懒加载
插件
API
域名
DNS
解析
HTML
相册
泡泡龙
累计撰写
39
篇文章
累计收到
3
条评论
首页
栏目
网站相关
Typecho
Emlog
素材分享
软件工具
游戏程序
页面
搜索到
19
篇与
的结果
2025-07-24
Typecho简洁文字博客主题Word
主题特色基于且延续Joe主题相关功能,具有丰富的短代码全新页面布局,从简设计说说页面时间轴设计、支持点赞回复留言页面用户排行榜友链页面分首页和内页显示归档页面手风琴设计支持文章列表点赞、两种分页模式可选支持导航栏分类合并、页面合并支持自定义页面 Batten 图支持移动端页脚自定义链接、自定义图标支持默认、单图、三图、无图和闲谈五种文章模式支持文章代码高亮支持评论贴图、私密、头像自动获取支持侧栏开关支持前台用户登录下载地址{cloud title="Typecho主题Word V1.2.0.7" type="github" url="https://github.com/dinphy/Word/releases/latest/download/Word.zip" password=""/}{cloud title="Typecho主题Word V1.2.0.6" type="ct" url="https://url43.ctfile.com/f/33127243-955120728-12a64f?p=2023" password="2023"/}
2025年07月24日
2 阅读
0 评论
0 点赞
2025-07-24
Typecho博客添加评论用户等级
{callout color="#f0ad4e"}首先在博客模板的functions.php文件里添加以下代码。{/callout}function dengji($i){ $db=Typecho_Db::get(); $mail=$db->fetchAll($db->select(array('COUNT(cid)'=>'rbq'))->from('table.comments')->where('mail = ?', $i)->where('authorId = ?','0')); foreach ($mail as $sl){ $rbq=$sl['rbq'];} if($rbq<1){ echo '博主'; }elseif ($rbq<10 && $rbq>0) { echo 'VIP1'; }elseif ($rbq<20 && $rbq>=10) { echo 'VIP2'; }elseif ($rbq<40 && $rbq>=20) { echo 'VIP3'; }elseif ($rbq<80 && $rbq>=40) { echo 'VIP4'; }elseif ($rbq<100 && $rbq>=80) { echo 'VIP5'; }elseif ($rbq>=100) { echo 'SVIP'; } }{callout color="#4ef05a"}打开模板 comments.php 文件,在需要的地方加上如下代码,建议加在评论者名字后边{/callout}<span style="border-radius: 3px;color: #ffffff;padding-right: 5px; padding-left: 5px;margin-top: 1px;background: #ee9b11;font-size: 12px;float: left;height: 16px;line-height: 16px;"><?php dengji($comments->mail);?></span>
2025年07月24日
0 阅读
0 评论
0 点赞
2025-07-24
IP签名图源码
{callout color="#f0ad4e"}图片包含天气/温度/湿度/风向/风力/IP/省市/操作系统及浏览器等{/callout}使用说明1.请先去高德地图开发平台创建应用获取KEY;2.打开源码 index.php ,在第6行填入高德地图KEY;3.图片显示的文字(泡泡龙)在 index.php 57行修改。下载地址{cloud title="IP签名图源码" type="ct" url="https://url43.ctfile.com/f/33127243-955585008-4c929c?p=2023" password="2023"/}
2025年07月24日
1 阅读
0 评论
0 点赞
2025-07-24
SPlayer:一款基于网易云高颜值的音乐网站源码
源码简介项目采用 Vue 3 全家桶和 Naïve UI 组件库及 SCSS 开发;目前主要以 Web 端为主,可能暂时不会考虑使用 Electron 构建客户端;仅对移动端做了基础适配,不保证功能全部可用。特色功能支持扫码登录支持手机号登录自动进行每日签到及云贝签到支持 UnblockNeteaseMusic,自动替换变灰歌曲由于酷我音源不支持 https,故网页端替换可能不全面下载歌曲(最高支持 Hi-Res)新建歌单及歌单编辑收藏 / 取消收藏歌单或歌手每日推荐歌曲私人 FM云盘音乐上传云盘内歌曲播放云盘内歌曲纠正云盘歌曲删除支持逐字歌词歌词滚动以及歌词翻译MV 与视频播放音乐频谱显示( 暂时去除,还待完善 )音乐渐入渐出支持 PWA支持评论区及评论点赞明暗模式自动 / 手动切换移动端基础适配i18n 支持部署教程API服务(必须){alert type="success"}Vercel 等托管平台可在 Fork 后一键导入并自动部署。1.本程序依赖 NeteaseCloudMusicApi 运行,请确保您已成功部署该项目;2.在根目录下的 .env 文件中的 VITE_MUSIC_API 中填入 API 地址(必需)。{/alert}API解灰(选填){alert type="error"}1.请前往 UNM-Server 部署在线 API 服务,并将 API 地址填入 .env 环境变量中;2.网页端替换无法播放或无版权的歌曲。如不需要该服务,请前往站点的 全局设置 中关闭。{/alert}安装依赖pnpm install 或者 yarn install 或者 npm install开发构建开发{alert type="info"}pnpm dev 或者 yarn dev 或者 npm dev{/alert}构建{alert type="info"}pnpm build 或者 yarn build 或者 npm build构建完成后可将生成的 dist 文件夹内的文件上传至服务器{/alert}下载地址{cloud title="SPlayer" type="github" url="https://github.com/imsyy/SPlayer" password=""/}{cloud title="SPlayer" type="ct" url="https://url43.ctfile.com/f/33127243-956535909-1d2199?p=2023" password="2023"/}
2025年07月24日
1 阅读
0 评论
0 点赞
2025-07-24
解决Typecho后台评论头像不显示的问题
打开 /admin/manage-comments.php 第123行可见如下代码;<?php $comments->gravatar(40); ?>将上述代码替换成如下代码即可;<span itemprop="image"> <?php $number=$comments->mail; if(preg_match('|^[1-9]\d{3,11}@qq\.com$|i',$number)){ echo '<img src="https://thirdqq.qlogo.cn/g?b=qq&nk='.$number.'&s=100" width="46px" height="46px" style="border-radius: 50%;float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">'; } else { echo '<img src="https://gravatar.helingqi.com/wavatar/'.$number.'" width="46px" height="46px" style="border-radius: 50%;float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">'; } ?> </span>
2025年07月24日
1 阅读
0 评论
0 点赞
2025-07-24
给JOE主题添加首页友联,仅在首页显示
前言JOE主题是Typecho博客一款高颜值、简洁、大气、绚丽、多功能免费开源的模版,深受广大Typecho博主的青睐,并且许多博主也是基于该模版进行二次创作。但是JOE作者并没有在模版添加首页友情链接功能,今天就给大家分享一段JOE模版仅在首页显示友情链接的代码,分为首页链接和内页链接,博主们可以自定义首链和内链。教程仅首页显示友链,分页不会显示1.首先打开模板根目录文件 index.php,在第180和181行之间(换行)加入以下代码(也可在footer.php添加); <div class="joe_container link"> <?php if ($this->is('index')) : ?> <div class="item"> <strong>友情链接:</strong> <?php $friends = []; $friends_text = $this->options->JFriendsIndex; 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)); }; } } ?> <?php if (sizeof($friends) > 0) : ?> <?php foreach ($friends as $item) : ?> <a class="contain" href="<?php echo $item['url']; ?>" target="_blank" rel="noopener noreferrer"> <span class="title" style="color:#70757a;"><?php echo $item['name']; ?></span> </a> <?php endforeach; ?> <?php endif; ?> <a class="contain" href="<?php $this->options->siteUrl(); ?>links.html" target="_blank" rel="noopener noreferrer"> <span class="title" style="color:#76b8fc;"> 更多 ></span> </a> </div> <?php endif; ?> </div><br>区分首页内页链接,内链不会出现在首页2.打开模板根目录文件 friends.php ,将第35至105行代码替换成如下代码; <?php $friends_index = []; $friends_index_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_index_text = $this->options->JFriendsIndex; if ($friends_index_text) { $friends_index_arr = explode("\r\n", $friends_index_text); if (count($friends_index_arr) > 0) { for ($i = 0; $i < count($friends_index_arr); $i++) { $name = explode("||", $friends_index_arr[$i])[0]; $url = explode("||", $friends_index_arr[$i])[1]; $avatar = explode("||", $friends_index_arr[$i])[2]; $desc = explode("||", $friends_index_arr[$i])[3]; $friends_index[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc)); }; } } ?> <?php if (sizeof($friends_index) > 0) : ?> <h3 class="joe_mtitle"><span class="joe_mtitle__text">首页友链</span></h3> <ul class="joe_detail__friends"> <?php foreach ($friends_index as $iitem) : ?> <li class="joe_detail__friends-item"> <a class="contain" href="<?php echo $iitem['url']; ?>" target="_blank" rel="noopener noreferrer" style="background: <?php echo $friends_index_color[mt_rand(0, count($friends_index_color) - 1)] ?>"> <span class="title"><?php echo $iitem['name']; ?></span> <div class="content"> <div class="desc"><?php echo $iitem['desc']; ?></div> <img width="40" height="40" class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" data-src="<?php echo $iitem['avatar']; ?>" alt="<?php echo $iitem['name']; ?>" /> </div> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?> <?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)); }; } } ?> <?php if (sizeof($friends) > 0) : ?> <h3 class="joe_mtitle"><span class="joe_mtitle__text">内页友链</span></h3> <ul class="joe_detail__friends"> <?php foreach ($friends as $item) : ?> <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 $item['name']; ?></span> <div class="content"> <div class="desc"><?php echo $item['desc']; ?></div> <img width="40" height="40" class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" data-src="<?php echo $item['avatar']; ?>" alt="<?php echo $item['name']; ?>" /> </div> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?>添加首页内页链接控制3.打开模板根目录文件 functions.php ,将第720~731行的代码替换成如下代码; $JFriendsIndex = new Typecho_Widget_Helper_Form_Element_Textarea( 'JFriendsIndex', NULL, '小王先森 || https://xwsir.cn/ || https://thirdqq.qlogo.cn/g?b=qq&nk=2027821710&s=100 || 山川异域,风月同天', '首页链接(非必填)', '介绍:用于填写首页友情链接 <br /> 格式:博客名称 || 博客地址 || 博客头像 || 博客简介 <br /> 其他:一行一个,一行代表一个友链' ); $JFriendsIndex->setAttribute('class', 'joe_content joe_other'); $form->addInput($JFriendsIndex); $JFriends = new Typecho_Widget_Helper_Form_Element_Textarea( 'JFriends', NULL, 'Joe的博客 || https://78.al || https://fastly.jsdelivr.net/npm/typecho-joe-next@6.0.0/assets/img/link.png || Eternity is not a distance but a decision', '内页链接(非必填)', '介绍:用于填写友情链接 <br /> 注意:您需要先增加友链链接页面(新增独立页面-右侧模板选择友链),该项才会生效 <br /> 格式:博客名称 || 博客地址 || 博客头像 || 博客简介 <br /> 其他:一行一个,一行代表一个友链' );{alert type="success"}以上就是全部教程,基本功能已经实现,需要修改样式的自己动手即可。{/alert}
2025年07月24日
1 阅读
0 评论
0 点赞
Emlog非插件显示评论者IP属地
2025年07月24日
2 阅读
0 评论
0 点赞
2025-07-24
在模版主目录 module.php 文件里添加以下代码;/** 获取评论者地址 */ function convertip($ip) { $dat_path = EMLOG_ROOT.'/qqwry.dat'; //*数据库文件路径*// if(!$fd = @fopen($dat_path, 'rb')){ return 'IP数据库文件不存在或者禁止访问或者已经被删除!'; } $ip = explode('.', $ip); $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3]; $DataBegin = fread($fd, 4); $DataEnd = fread($fd, 4); $ipbegin = implode('', unpack('L', $DataBegin)); if($ipbegin < 0) $ipbegin += pow(2, 32); $ipend = implode('', unpack('L', $DataEnd)); if($ipend < 0) $ipend += pow(2, 32); $ipAllNum = ($ipend - $ipbegin) / 7 + 1; $BeginNum = 0; $EndNum = $ipAllNum; while($ip1num>$ipNum || $ip2num<$ipNum) { $Middle= intval(($EndNum + $BeginNum) / 2); fseek($fd, $ipbegin + 7 * $Middle); $ipData1 = fread($fd, 4); if(strlen($ipData1) < 4) { fclose($fd); return '系统出错!'; } $ip1num = implode('', unpack('L', $ipData1)); if($ip1num < 0) $ip1num += pow(2, 32); if($ip1num > $ipNum) { $EndNum = $Middle; continue; } $DataSeek = fread($fd, 3); if(strlen($DataSeek) < 3) { fclose($fd); return '系统出错!'; } $DataSeek = implode('', unpack('L', $DataSeek.chr(0))); fseek($fd, $DataSeek); $ipData2 = fread($fd, 4); if(strlen($ipData2) < 4) { fclose($fd); return '系统出错!'; } $ip2num = implode('', unpack('L', $ipData2)); if($ip2num < 0) $ip2num += pow(2, 32); if($ip2num < $ipNum) { if($Middle == $BeginNum) { fclose($fd); return '未知'; } $BeginNum = $Middle; } } $ipFlag = fread($fd, 1); if($ipFlag == chr(1)) { $ipSeek = fread($fd, 3); if(strlen($ipSeek) < 3) { fclose($fd); return '系统出错!'; } $ipSeek = implode('', unpack('L', $ipSeek.chr(0))); fseek($fd, $ipSeek); $ipFlag = fread($fd, 1); } if($ipFlag == chr(2)) { $AddrSeek = fread($fd, 3); if(strlen($AddrSeek) < 3) { fclose($fd); return '系统出错!'; } $ipFlag = fread($fd, 1); if($ipFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return '系统出错!'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)) $ipAddr2 .= $char; $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0))); fseek($fd, $AddrSeek); while(($char = fread($fd, 1)) != chr(0)) $ipAddr1 .= $char; } else { fseek($fd, -1, SEEK_CUR); while(($char = fread($fd, 1)) != chr(0)) $ipAddr1 .= $char; $ipFlag = fread($fd, 1); if($ipFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return '系统出错!'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)){ $ipAddr2 .= $char; } } fclose($fd); if(preg_match('/http/i', $ipAddr2)) { $ipAddr2 = ''; } $ipaddr = "$ipAddr1 $ipAddr2"; $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr); $ipaddr = preg_replace('/^s*/is', '', $ipaddr); $ipaddr = preg_replace('/s*$/is', '', $ipaddr); if(preg_match('/http/i', $ipaddr) || $ipaddr == '') { $ipaddr = '未知'; } $ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr); if( $ipaddr != ' ' ) return $ipaddr; else $ipaddr = '评论者来自火星,无法或者其所在地!'; return $ipaddr; }注:如只想显示地区,不显示后面的网络(移动/联通),请把 $ipaddr = "$ipAddr1 $ipAddr2"; 改为 $ipaddr = "$ipAddr1";添加完代码后把 qqwry.dat 上传至程序安装根目录(也可以放在其他目录,但要修改以上代码第二行的路径),qqwry.dat下载地址:https://lsmod.cn/qqwry.dat在 module.php 找到 评论列表,在需要的地方添加如下代码;<?php echo convertip($comment['ip']); ?>如果网站配置了CDN,请在网站根目录 config.php 添加如下代码即可绕过CDN获取用户真实IP属地;//绕过 CDN 代理获取真实 IP if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $list[0];}
1
2
3