我的作品
更多
Land 主题
Land 主题
一个 WordPress 企业主题
River 主题
River 主题
一个 WordPress 博客主题
Flame 插件
Flame 插件
WordPress 插件,增强 RESTful API 功能
AIBOT 插件
AIBOT 插件
一款 AI 插件,协助创作。自动批量生成和发布文章。
Light 主题
Light 主题
Flame 插件的配套主题
最新文章
使用 url.parse() 函数转换'https://www.yuque.com!.evil.com' 'https://www.yuque.com%0a.evil.com' 会变成:'https://www.yuque.com/!.evil.com' 'https://www.yuque.com/%0a.evil.com' 可以看到 legacy API 并不认为 ! 字符属于域名的一部分,所以原始的 www.yuque.com!.evil.com 域名其实是非法的,而为了不抛异常,legacy API 尝试对它进行了一次转换,把它当成 www.yuque.com/!.evil.com 来
admin 2022-11-07 JavaScript Node.js 编程开发 946
在执行 top 命令:top - 14:13:38 up 10 days, 18:47, 1 user, load average: 0.09, 0.11, 0.08 Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie top命令中 load average 显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载是在特定时间间隔内,运行队列中的进程数。在Linux中,进程分为三种状态:阻塞的进程 blocked process、可运行的进程 runnable process、正在运行的进程 ru
admin 2022-11-05 运维 1549
代码: p 啦啦啦啦 啦啦 啦啦啦 div 呱呱呱 /div /p 在浏览器中渲染成了: p 啦啦啦啦 啦啦 啦啦啦 /p div 呱呱呱 /div p /p 原因是 p 标签里面不能嵌套 ul、div 等块级元素,只能嵌套行内元素。h1~h6之间也不能相互嵌套。
admin 2022-11-05 JavaScript 1241
例子:select SUBSTRING_INDEX(thumbnail,'/',-1) as file_name, thumbnail, SUBSTRING_INDEX(thumbnail,'.',-1) as suffix, from tb_article where thumbnail != ''; 介绍:这里用到 MySQL 的 SUBSTRING_INDEX(str,delim,count) 函数,LENGTH(str) 函数,REPLACE(str,from_str,to_str) 函数,和数据库的一张辅助表help_topic(这张表在默认的mysql库里)。SUBST
admin 2022-11-05 MySQL 1051
JavaScript中的数据类型自动转换时,空数组[]或空对象{}都的布尔类型不是false,而是 true当JavaScript遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。因此除了以下六个值,其他都是自动转为true:undefinednull-00或+0NaN''(空字符串)
admin 2022-11-04 JavaScript 833
&::-webkit-scrollbar { width: 5px; height: 8px; background-color: #aaa; /* or add it to the track */ } &::-webkit-scrollbar-thumb { background: #000; } 主要文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar
admin 2022-11-04 CSS 913
因为各种现代话框架的流行,SQL 注入的威胁相对已经减少很多。但是在看不见的角落,还是存在SQL注入的威胁。SQL 预处理可以解决绝大部分 SQL 注入问题,但是有些地方不能预处理,或者需要变通的方式处理这些问题。比如表名/列名/排序动态传入的场景,这些地方不能预编译,因此很多人还是直接拼接的,而没有有效过滤。 还有 LIKE语句/IN语句中,因为这两个地方的预编译写法都有些特殊,比如 IN 常常使用 FIND_IN_SET 函数代替。
admin 2022-11-03 MySQL 896
统计指定某一天的PV数cat cn_net_javascript.access.log | sed -n '/22\/Jul\/2022/p' | wc -l 根据访问IP统计UVawk '{print $1}' cn_net_javascript.access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-6点)grep "22/Jul/2022:0[4-6]" cn_net_javascript.access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l grep "22/J
admin 2022-11-03 运维 929
单元测试很重要,很多新兴的编程语言都是会内置对应的能力,但 Node.js 这块一直都是由社区来实现,前端同学耳熟能详的 Test Runner 有 Mocha、Jest。2022年04月19日正式发布的 Node.js 18.x ,终于,官方支持了 Test 能力。Fetch API 也被集成到这个版本中了。测试 API 接口在一定程度上代替 SuperTest 了。代码:import test from 'node:test'; import assert from 'assert/strict'; // 等价于 describe() test('asynchronous passing
admin 2022-04-28 JavaScript Node.js 编程开发 831
MySQL 中,不可直接修改数据库名称。有一种变通的方式如下:如果有一个数据库名称是 “old_database”,想把这个数据库的名字改成 “new_database”;首先创建一个新的数据库 “new_database”create database new_database; 获取所有源库的表名use information_schema; select table_name from TABLES where TABLE_SCHEMA=’old_database’; 然后按照以下命令一个个修改rename table old_database.[tablename] to new_da
admin 2022-03-27 MySQL 1254
网上看过很多 Switch 的例子,很多还需要额外的 label 或者 i 标签配合来实现,看到有个完全使用 CSS3 来实现的例子。只使用 CSS3 的伪类就可以实现。HTML: input type="checkbox" class="switch" input type="checkbox" class="switch" checked input type="checkbox" class="switch" disabled input type="checkbox" class="switch" checked disabled CSS.switch { box-s
admin 2022-03-08 CSS 编程开发 807
简介Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。Rollup 对代码模块使用ESM。ES6 模块最终还是要由浏览器原生实现,但当前 Rollup 可以使你提前体验。Webpack 的理念是“万物皆是模块”,rollup.js 从一开始,就没有那样宏大的愿景,它描述自己是:“一个 JavaScript 模块打包器”。致力于“将小块的代码编译成大的复杂的代码”。快速使用Rollup 可以通过命令行接口(command line interface)配合可选配置文件(optional configuration fil
admin 2022-03-03 JavaScript 730
一,放大图标方法一:直接修改图标的 font-size。方法二:使用 transform:scale(1.5) 放大图标,需要注意有时在 iconfont 上是无效的,因为 transform 只能使用在块状元素上。比如:display:block 或者 display:inline-block。二,图标位置图标和文字往往不在一条基线上,常常需要调整 iconfont 图标的位置,最简单的方法是:.some-div .iconfont{ position: relative; top:0.1rem; } 另一种方法是使用 vertical-align 属性设置元素的垂直对齐方式。该属性
admin 2022-03-01 CSS 1306
简介做爬虫解析 HTML,之前一直是用 cheerio,随着 jQuery 的渐行渐远,使用 cheerio 的类 jQuery API 已经成为一种负担, 我使用这个支持 Selectors API 的解析器 node-html-parser 来代替 cheerio。前后端的 HTML Selectors API 终于统一了。官方地址:https://www.npmjs.com/package/node-html-parser在 npmjs.com 的周下载量是:1,777,505。 cheerio 的周下载量是 6,696,323。执行速度上:cheerio :12.072
admin 2022-02-28 JavaScript Node.js 1246
媒体查询(Media queries)非常实用,尤其是当你想要根据设备的大致类型(如打印设备与带屏幕的设备)或者特定的特征和设备参数(例如屏幕分辨率和浏览器视窗宽度)来修改网站或应用程序时。使用Window.matchMedia() 和MediaQueryList.addListener() 方法来测试和监控媒体状态。媒体特性(Media features)描述了 user agent、输出设备,或是浏览环境的具体特征。媒体特性表达式是完全可选的,它负责测试这些特性或特征是否存在、值为多少。每条媒体特性表达式都必须用括号括起来。最常用的媒体特性肯定就是“width"了。今天介绍的这个 CSS
admin 2022-02-22 CSS 894
var assert = require("assert"); var request = require('supertest'); // describe('接口测试', async function () { const http = require('http'); const app = require('../../app'); const PORT = process.env.PORT || 3003; const SERVER = http.createServer(app.callback()); it('获取 API 版本信息', (done) = { let
admin 2022-02-22 JavaScript Node.js 889
Jest 简介Jest 是一个越来越流行的测试框架,使用率渐渐超过了Mocha, 这些项目都在使用 Jest:Babel、 TypeScript、 Node、 React、 Angular、 Vue 等等!Jest 的目标是在大部分 JavaScript 项目上实现开箱即用, 无需配置。从 it 到 expect - Jest 将整个工具包放在同一个 地方。好书写、好维护、非常方便。快速上手npm install --save-dev jest 下面我们开始给一个假定的函数写测试,这个函数的功能是两数相加。首先创建 sum.js 文件:function sum(a, b) { return
admin 2022-02-22 JavaScript Node.js 857
1,数据库中间表一般,使用下划线连接两个表作为中间表表名(table1_table2)。比如,表前缀是tb,表 tb_article 和 tb_tag 的中间表的表名就应该是 tb_article_tag。有时候可以把表命名为 "tb_article_tag_relation" 来突出一个表是中间表。2,在项目简单的时候,这种命名方式是没有问题的。如果复杂一点, 一个文章表 tb_post,和一个文章的类型表 tb_post_type,按照上面方式命名方式,就会出现 tb_post_post_type 这样的奇葩表名。看到有人使用双下划线“__”或者“_to_“连接两个表,比如“tb_post
admin 2022-02-16 MySQL 3186
本文方法已经过时,官方最新方法:https://uniapp.dcloud.net.cn/tutorial/darkmode.htmlhttps://ask.dcloud.net.cn/article/36995简介:uniapp 暗黑模式适配主要包括三部分,一部分是应用中的页面,另一部分是特定功能弹出系统原生界面(如alert提示框)和安全区域外背景颜色,下面会详细说明分别如何适配。方法一:官方方法,只能适配 ios这个方法是官方给的,但暂时只能适配 ios,地址:https://ask.dcloud.net.cn/article/36995官方给的方法主要是靠 plus.navigator
admin 2022-02-15 开发工具 3909
1 准备一个 1024 * 1024 的png图片,假设名字为 pic.png2 命令行 $ mkdir tmp.iconset,创建一个临时目录存放不同大小的图片3 把原图片转为不同大小的图片,并放入上面的临时目录# 全部拷贝到命令行回车执行,执行结束之后去tmp.iconset查看十张图片是否生成好sips -z 16 16 pic.png --out tmp.iconset/icon_16x16.png sips -z 32 32 pic.png --out tmp.iconset/icon_16x16@2x.png sips -z 32 32 pic.png -
admin 2022-01-21 运维 781
随机推荐
Photoshop 使用插件支持 webp 格式的文件
Git 放弃本地修改,强制和之前的某次提交同步
WordPress 文章排序
Vue3 挂载全局方法
使用 svg 作为背景图片
Wordpress 主样式表(style.css)
wp_signon() 自定义用户登录函数
FFmpeg 修改默认音轨