首页
壁纸
统计
友联
留言
Search
1
飞牛NAS社区自动打卡签到
31 阅读
2
飞牛NAS部署宝塔面板
19 阅读
3
Deepin V25安装 1Panel启动失败的问题修复办法
16 阅读
4
Debain终端语言报错问题解决办法
13 阅读
5
123云盘资源分享链接
13 阅读
飞牛Nas
青龙面板
编程开发
Python
Java
Go
PHP
JavaScript
Typecho
系统问题
Linux
Windows
Debain
Deepin
资源分享
登录
/
注册
Search
标签搜索
飞牛NAS
Python
宝塔面板
PHP
函数
Linux
Docker
青龙面板
JavaScript
Typecho
伪静态
Nginx
Debain
123云盘
123Pan
资源
Deepin
1Panel
Windows
Xbox Game Bar
AiWeiYi
累计撰写
14
篇文章
累计收到
1
条评论
首页
栏目
飞牛Nas
青龙面板
编程开发
Python
Java
Go
PHP
JavaScript
Typecho
系统问题
Linux
Windows
Debain
Deepin
资源分享
页面
壁纸
统计
友联
留言
搜索到
14
篇与
的结果
2025-04-09
PHP 安装与配置教程
一、准备工作操作系统:Windows 10/11下载工具:浏览器(推荐 Chrome 或 Edge)存储空间:至少预留 200MB 可用空间二、安装 PHP下载 PHP访问 PHP 官网下载页面:https://windows.php.net/download选择适合你系统的版本:推荐下载 Non Thread Safe (NTS) 版本(如 php-8.2.10-nts-Win32-vs16-x64.zip)。如果你的系统是 32 位,选择 x86 版本。解压 PHP将下载的 ZIP 文件解压到一个目录(如 D:\PHP)。解压后,你会看到以下文件:php.exe:PHP 解释器。php.ini-development:PHP 配置文件模板。配置 PHP将 php.ini-development 文件重命名为 php.ini。打开 php.ini,找到以下配置项并修改:启用扩展(去掉前面的分号 ;):extension_dir = "ext"extension=curlextension=gdextension=mbstringextension=mysqliextension=pdo_mysqlextension=openssl设置时区:date.timezone = Asia/Shanghai配置环境变量右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”中找到 Path,点击“编辑”。点击“新建”,输入 PHP 的安装路径(如 D:\PHP)。点击“确定”保存。验证安装打开命令提示符(Win + R → 输入 cmd → 回车)。输入以下命令:php -v{mtitle title="输出示例"/}三、安装 Composer(PHP 依赖管理工具)下载 Composer访问 Composer 官网:https://getcomposer.org/download下载 Windows 安装程序(Composer-Setup.exe)。安装 Composer双击 Composer-Setup.exe,启动安装程序。选择 PHP 路径(如 D:\PHP\php.exe)。勾选“Add Composer to your PATH”,点击“Install”。完成安装后,点击“Finish”。验证 Composer打开命令提示符,输入以下命令:composer --version{mtitle title="输出示例"/}四、配置 Composer 缓存位置默认情况下,Composer 会将下载的依赖包缓存到 C:\Users\<你的用户名>\AppData\Local\Composer。如果你想将缓存位置改为其他目录,可以按照以下步骤操作:设置环境变量右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”中点击“新建”,输入:变量名:COMPOSER_CACHE_DIR变量值:自定义路径(如 D:\ComposerCache)。点击“确定”保存。验证缓存路径打开命令提示符,输入以下命令:composer config --global cache-dir{mtitle title="输出示例"/}五、常见问题问:PHP命令无效答:检查是否将 PHP 安装路径添加到环境变量 Path 中问:Composer 安装失败:答:确保 PHP 已正确安装,并且 php.ini 中启用了 openssl 扩展。问:缓存路径不生效:答:确保环境变量 COMPOSER_CACHE_DIR 已正确设置,并重启命令提示符。
2025年04月09日
5 阅读
0 评论
0 点赞
2025-04-08
Typecho伪静态规则
一、Nginx 规则location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } } {mtitle title="使用方法"/}二、开启伪静态
2025年04月08日
5 阅读
0 评论
0 点赞
2025-04-04
Python安装教程
一、安装包下载官网下载:https://www.python.org/downloads/{mtitle title="打开网站后点击下载"/}二、安装步骤{mtitle title="双击打开安装包"/}{mtitle title="按顺序操作"/}{mtitle title="直接点击Next"/}{mtitle title="设置安装路径"/}{mtitle title="等待进度跑完"/}{mtitle title="安装完成,直接关闭窗口"/}三、测试环境1. 按下组合键 win + R 打开运行窗口 2. 在运行窗口中输入cmd,打开命令行界面3. 在命令行界面输入 python -V{mtitle title="输入cmd后回车"/}{mtitle title="出现版本号即安装成功"/}
2025年04月04日
11 阅读
0 评论
1 点赞
2025-03-27
Python文件批量修改
import os from pathlib import Path def menu_one(): folder_path = input("请输入需要批量修改文件名的路径:") content = input("请输入需要去掉的内容:") file_names = os.listdir(folder_path) for file_name in file_names: new_file_name = file_name.replace(content, '') os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name)) print(f'{file_name} to {new_file_name}') def menu_two(): path = input("请输入需要批量修改文件名的路径:") prefix = input("请输入需要在文件名前添加的内容:") for file_name in os.listdir(path): # 重命名文件 os.rename(os.path.join(path, file_name), os.path.join(path, prefix + file_name)) print(f'{file_name} to {prefix + file_name}') def menu_three(): folder_path = input("请输入需要批量修改文件名的路径:") old = input("请输入修改前的内容:") new = input("请输入修改后的内容:") file_names = os.listdir(folder_path) for file_name in file_names: new_file_name = file_name.replace(old, new) os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name)) print(f'{file_name} to {new_file_name}') def menu_four(): folder_path = input("请输入需要文件名需要批量添加后缀的路径:") ext = input("请输入需要添加的后缀(.exe)") folder_path = Path(folder_path) for file_path in folder_path.rglob('*'): if file_path.is_file(): new_file_name = f"{file_path}.{ext}" print(f"{file_path} to {new_file_name}") os.rename(file_path, new_file_name) def menu(): while True: print("1、删除文件名中指定的内容") print("2、文件名前面增加内容") print("3、修改文件名中指定内容") print("4、批量添加文件名后缀") mode = eval(input("输入对应序号:")) if mode == 1: menu_one() elif mode == 2: menu_two() elif mode == 3: menu_three() elif mode == 4: menu_four() else: print("选项错误") if __name__ == '__main__': menu()
2025年03月27日
6 阅读
1 评论
0 点赞
2025-03-27
网上收集到的一些常用函数
/** * @description: 校验身份证 * @param {*} * @return {*} */ export const validateIDCard = value => /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value); /** * @description: 校验支付宝账号 * @param {*} * @return {*} */ export const validateAlipay = value => /^1\d{10}$|^[a-zA-Z\d._-]*\@[a-zA-Z\d.-]{1,10}\.[a-zA-Z\d]{1,20}$/.test(value); /** * @description: 校验银行卡 * @param {*} * @return {*} */ export const validateBankCode = value => /^\d{13,19}$/.test(value); /** * @description: 校验手机号 * @param {*} * @return {*} */ export const validatePhone = value => /^1\d{10}$/.test(value); /** * @description: 函数节流 * @param {*} * @return {*} */ export const throttle = function (fn, delay = 1000) { let prev = 0; return function () { const now = Date.now(); if (now - prev > delay) { fn.apply(this, arguments); prev = Date.now(); } } } /** * @description: 获取随机字符串 * @param {*} * @return {*} */ export const randomString = () => Math.random().toString(36).substr(2); /** * @description: 将 BASE64 转换文件 * @param {*} * @return {*} */ export const dataURLtoFile = (dataurl, filename) => { const arr = dataurl.split(','); const mime = arr[0].match(/:(.*?);/)[1]; if (!filename) filename = `${Date.parse(new Date())}.jpg`; const bstr = window.atob(arr[1]); let n = bstr.length; const u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], filename, { type: mime }); } /** * @description: 压缩图片 * @param {*} * @return {*} */ export const compressImg = file => { const fileSize = parseFloat(Number.parseInt(file.size, 10) / 1024 / 1024).toFixed(2); const reader = new FileReader(); reader.readAsDataURL(file); return new Promise((resolve) => { reader.onload = e => { const img = new Image(); img.src = e.target.result; img.onload = () => { const w = img.width; const h = img.height; const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); let base64; canvas.setAttribute('width', w); canvas.setAttribute('height', h); ctx.drawImage(img, 0, 0, w, h); if (fileSize <= 1) { base64 = canvas.toDataURL(file.type, 1); } else if (fileSize <= 3) { base64 = canvas.toDataURL(file.type, 0.8); } else if (fileSize <= 5) { base64 = canvas.toDataURL(file.type, 0.5); } else { base64 = canvas.toDataURL(file.type, 0.1); } let fileName = file.name; fileName = fileName.replace(/^(.+)\.(.+)$/, (fullName, name, suffix) => name + Math.floor(Math.random() * (9999 - 1000) + 1000) + '.' + suffix); resolve(dataURLtoFile(base64, fileName)); }; }; }); }
2025年03月27日
6 阅读
0 评论
0 点赞
1
2
3