王新阳

wangxinyang

未解之谜

百度搜索算法规范详解https://zy.baidu.com/act/guide?isResponsible=1

百度搜索优化知识大全https://zy.baidu.com/act/seo?isResponsible=1

阿里云开发者课堂 https://edu.aliyun.com/

spark-md5.js 计算文件md5值 :https://github.com/satazor/js-spark-md5

一个提供用户脚本的网站
https://greasyfork.org/zh-CN

用户脚本管理器:Tampermonkey中文文档
https://www.cnblogs.com/grubber/p/12560522.html

Js上传插件 Plupload

drupal

嵌入式WEB开发

CSRF 漏洞

fopen漏洞

Python
阿里云大学PYTHON学习路线
https://edu.aliyun.com/roadmap/python

ThinkPHP list_to_tree、tree_to_list、list_search

vue.js

C盘可以删除的临时文件,也可以用系统自带的磁盘清理程序清除
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
C:\Windows\SoftwareDistribution\Download
https://support.microsoft.com/zh-cn/windows?ui=zh-CN&rs=zh-CN&ad=CN
https://support.microsoft.com/zh-cn/windows/%E9%87%8A%E6%94%BE-windows-10-%E4%B8%AD%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%A9%BA%E9%97%B4-85529ccb-c365-490d-b548-831022bc9b32

用虚拟打印机检测打印效果

安装虚拟打印机:DoroPDF Writer、Bullzip PDF Printer

打印时选择虚拟打印,会自动生成pdf文件或图片文件,图片效果即为最终打印效果,不需要用真实纸张打印,快捷方便。

修改DoroPDF的配置文件Doro.ini,可以设置输出文件类型、覆盖提醒、文档转换类型、静默转换等。

Doro PDF Writer ‌是一款免费的虚拟打印机软件,主要用于将各种文档转换为PDF格式。该软件具有体积小、操作简便的特点,支持多种文件格式的转换,包括Word文档、Excel表格、PowerPoint演示文档、图片、邮件和网页等‌。

功能特点
‌体积小巧‌:Doro PDF Writer的安装包大小仅为8MB左右,不会占用过多系统资源‌。
‌操作简单‌:用户只需像操作真实打印机一样进行设置和打印,即可将各种文件转换为PDF格式‌。
支持多种文件格式‌:无论是Word文档、Excel表格、PowerPoint演示文档,还是图片、邮件、网页等,都可以轻松转换为PDF‌、JPG、PNG。
‌加密功能‌:用户可以在打印时设置加密选项,确保PDF文件的安全性‌。
使用方法
‌安装软件‌:下载并安装Doro PDF Writer后,会在“控制面板”中的“打印机和传真”选项中看到新安装的虚拟打印机‌。
‌设置默认打印机‌:右键点击Doro PDF Writer,选择“设置为默认打印机”‌。
‌打印文件‌:打开需要转换的文件,选择“打印”功能,然后在打印机选项中选择Doro PDF Writer进行打印‌。
‌设置加密‌:在打印时,可以在“加密”界面设置密码,确保PDF文件的安全性‌。

windows IIS中php增加mssql数据库支持

第一步:https://pecl.php.net/package/sqlsrv

在 changelog 中查看 php版本对应的 sqlsrv版本

第二步:下载对应 sqlsrv版本的 DLL,解压到php ext目录,修改 php.ini,
增加 extension=php_sqlsrv.dll

第三步:在 changelog 中查看所需要的 MS ODBC Driver 版本,并到给出的地址下载。
如:下载 Microsoft ODBC Driver 17 for SQL Server (x64)
下载后文件名为 msodbcsql.msi,安装并重启iis

就可以在php中使用 sqlsrv 驱动连接 mssql 数据库了

https://learn.microsoft.com/zh-cn/sql/connect/odbc/download-odbc-driver-for-sql-server

localStorage详解

转自:https://www.jianshu.com/p/39ba41ead42e

localStorage方法:

名称作用
clear清空localStorage上存储的数据
getItem读取数据
hasOwnProperty检查localStorage上是否保存了变量x,需要传入x
key读取第i个数据的名字或称为键值(从0开始计数)
lengthlocalStorage存储变量的个数
propertyIsEnumerable用来检测属性是否属于某个对象的
removeItem删除某个具体变量
setItem存储数据
toLocaleString将(数组)转为本地字符串
valueOf获取所有存储的数据

mysql快速查询值是否存在

SELECT EXISTS(SELECT 1 FROM users WHERE id_number = '1234567890');

SELECT 1:在子查询中,选择常量 1 而不是实际的列数据,因为这里我们只关心是否存在匹配的行,而不关心具体的列数据。
FROM users:指定要查询的表。
WHERE id_number = '1234567890':指定查询条件,即证件号码必须匹配 '1234567890'。

Codeigniter示例:</p

$sql = 'SELECT EXISTS(SELECT 1 FROM users WHERE id_number=?) as `num`';
$res=$this->db->query($sql, array('123456'))->row_array();
echo $res['num']==1 ? 'yes' : 'no';


</p

php随机生成有效的公网ipv4地址

//随机生成有效的公网ipv4地址
function generateRandomPublicIPv4() {
	// 排除的IP范围(局域网、保留地址等)
	$excludedRanges = [
		['0.0.0.0', '0.255.255.255'],	   // 当前网络
		['10.0.0.0', '10.255.255.255'],	 // 私有网络
		['100.64.0.0', '100.127.255.255'],  // Carrier-grade NAT
		['127.0.0.0', '127.255.255.255'],   // 环回地址
		['169.254.0.0', '169.254.255.255'], // 链路本地
		['172.16.0.0', '172.31.255.255'],   // 私有网络
		['192.0.0.0', '192.0.0.255'],	   // IETF协议分配
		['192.0.2.0', '192.0.2.255'],	   // TEST-NET-1
		['192.88.99.0', '192.88.99.255'],   // 6to4中继
		['192.168.0.0', '192.168.255.255'], // 私有网络
		['198.18.0.0', '198.19.255.255'],   // 网络基准测试
		['198.51.100.0', '198.51.100.255'], // TEST-NET-2
		['203.0.113.0', '203.0.113.255'],   // TEST-NET-3
		['224.0.0.0', '239.255.255.255'],   // 组播地址
		['240.0.0.0', '255.255.255.254'],   // 保留地址
		['255.255.255.255', '255.255.255.255'] // 广播地址
	];
	foreach($excludedRanges as &$row){
		$row[0]=ip2long($row[0]);
		$row[1]=ip2long($row[1]);
	}
	
	// 生成随机IP直到找到有效的公网IP
	do {
		// 生成随机IP
		$ipLong = mt_rand(ip2long('1.0.0.0'), ip2long('223.255.255.255'));
		$ip = long2ip($ipLong);
		
		$isValid = true;
		
		// 检查是否在排除范围内
		foreach ($excludedRanges as $range) {
			list($start,$end)=$range;
			
			if ($ipLong >= $start && $ipLong <= $end) {
				$isValid = false;
				break;
			}
		}
		
		// 额外检查:排除以0或255结尾的地址(通常有问题)
		$parts = explode('.', $ip);
		if ($parts[3] == 0 || $parts[3] == 255) {
			$isValid = false;
		}
		
	} while (!$isValid);
	
	return $ip;
}

云主机遭遇挖矿病毒处理方法

https://blog.csdn.net/qq_61872115/article/details/136987258

https://blog.csdn.net/qq_35573061/article/details/138495615

优秀开源项目

微信支付SDK
https://easywechat.com/
https://github.com/w7corp/easywechat

中国农历(阴历)与阳历(公历)转换与查询工具
https://github.com/overtrue/chinese-calendar/tree/master

更准确的 PHP 汉字转拼音解决方案
https://overtrue.me/php-chinese-to-pinyin/
https://overtrue.me/pinyin/
https://github.com/overtrue/pinyin

几个excel公式

根据单元格的值设置文字颜色等

>开始》条件设置》新建格式规则》使用公式确定要设置格式的单元格
=OR(D2="请填写",D2="号码错误")
或者
=AND(D2<>"校验通过")
点击“格式”自行设置

根据C列的证件号码校验身份证号是否正确

=IF(LEN(C2)=18,IF(AND(ISNUMBER(--LEFT(C2,17)),OR(RIGHT(C2,1)="X",ISNUMBER(--RIGHT(C2,1)))),IF(RIGHT(C2,1)=MID("10X98765432",MOD(SUMPRODUCT(MID(C2,ROW(INDIRECT("1:17")),1)*MOD(2^(18-ROW(INDIRECT("1:17"))),11)),11)+1,1),"校验通过","号码错误"),"号码错误"),"身份证号码应该为18位")

根据B列的证件类型和C列的证件号码校验身份证号是否正确

=IF(B2="身份证",IF(LEN(C2)=18,IF(AND(ISNUMBER(--LEFT(C2,17)),OR(RIGHT(C2,1)="X",ISNUMBER(--RIGHT(C2,1)))),IF(RIGHT(C2,1)=MID("10X98765432",MOD(SUMPRODUCT(MID(C2,ROW(INDIRECT("1:17")),1)*MOD(2^(18-ROW(INDIRECT("1:17"))),11)),11)+1,1),"校验通过","号码错误"),"号码错误"),"身份证号码应该为18位"),"")

通过注册表编辑器禁用TLS1.0、TLS1.1

定位到注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

  1. 创建或修改TLS 1.0键值
    如果不存在 TLS 1.0 键,右键点击 Protocols → 新建 → 项,命名为 TLS 1.0。
  2. 在 TLS 1.0 下分别创建 Client 和 Server 子项。
    设置禁用参数
    Client项:
     新建DWORD值:
     Enabled → 值设为 0
    Server项:
     同样新建Enabled → 值设为 0
  3. 重启服务器
    关闭注册表编辑器,重启系统使设置生效。

TLS 1.1 禁用步骤同上。

另外,可下载图形化工具 IIS Crypto 来禁用相关功能,下载地址:https://www.nartac.com/products/IISCrypto/download


2025-06-27 星期五 农历六月初三