
PHP
文章平均质量分 83
暂时先用这个名字
编程是工作与兴趣
展开
-
网站内容管理系统功能测试报告模板
本次功能测试旨在验证网站内容管理系统是否满足业务需求和功能规格说明书的要求,确保系统的各项功能能够正常运行,为用户提供稳定、可靠的服务体验。原创 2024-12-28 11:38:58 · 1156 阅读 · 0 评论 -
PHP开发日志 ━━ 基础知识:四种不同的变量返回方式该如何调用
最近在给框架升级,其中涉及到古早的缓存系统升级,现在准备区分类型为混合、变量和普通文件,那么变量用什么形式存储到缓存将给后续开发带来便利和通用性呢?文件A.php中原创 2024-12-15 18:39:56 · 452 阅读 · 0 评论 -
AI修改验证账号名正则表达式的案例
我有如下的一行老代码,今天复用的时候发现当时注释写错了,改好以后请AI再检查一遍。因为这次AI的分析的思路很典范,所以拿出来分享一下。原创 2024-11-21 11:17:13 · 749 阅读 · 0 评论 -
当返回值是一个复杂对象,包含了多种类型,用哪些词汇呢?
manager 强调的是管理、控制和协调。它常常用来表示一个负责组织、调度和管理某些对象或服务的角色。例如,storeUser.manager() 很可能意味着你返回的是一个用于管理用户相关状态、行为和服务的对象。原创 2024-11-10 19:52:41 · 1115 阅读 · 0 评论 -
factory、creator、handler、builder、provider、generator、instance、constructor之间在返回实例或返回函数定义上有什么区别
深入分析一下 factory、creator、handler、builder、provider、generator、instance、constructor这些单词在编程领域的惯用语义及其适用场景,特别是在区分实例和函数定义方面的区别。比如xxx返回的是函数定义,还要实例化才能使用;yyy返回的是实例,直接可用。无聊不无聊?对比表名称典型用法返回值类型适用场景结论factory函数定义(需要再调用)延迟生成实例,需要工厂函数动,态生成实例返回函数定义creator。原创 2024-11-10 19:29:29 · 717 阅读 · 0 评论 -
多应用系统规划App(应用)、Node(节点)、Menu(菜单) 和 User(用户)之间关系
系统中包含多个App(应用),每个应用下有多个Node(功能节点),而Menu(菜单)则用于界面导航。通过权限管理系统来控制用户对不同AppNode和Menu的访问权限。App(应用):系统中的独立模块,如培训应用、信息报送应用等。Node(功能节点):每个 App 下的具体功能点,如报名系统、证书系统、发送信息等。Node 可以跨应用共享。Menu(菜单):界面导航结构,用于展示用户可见的功能入口。Menu 可以与 Node 关联,也可以独立存在。权限(Permission)原创 2024-11-09 20:08:41 · 1074 阅读 · 0 评论 -
Node(节点)、Menu(菜单) 和 Tab(标签页)之间的关系
Node(节点)通常表示系统中的一个独立功能单元或资源。节点可以是页面、操作功能、数据条目等。节点更像是系统功能模块的实际承载体,可以与菜单项关联,但不仅限于菜单。原创 2024-11-09 18:42:36 · 567 阅读 · 0 评论 -
单应用系统规划Node(节点)、Menu(菜单) 和 User(用户)之间关系
通过引入Node 系统,可以实现更灵活的权限控制,并将菜单和功能权限分离开来。这种设计可以支持复杂的业务场景,特别是在权限控制要求高的系统中(如后台管理系统、企业级应用)。原创 2024-11-09 19:16:39 · 645 阅读 · 0 评论 -
程序开发时命名规范(目录名、文件名、函数名、变量名、数据库字段等)的最终方案
程序开发时的字母大小写的命名规范(目录名、文件名、函数名、变量名、数据库字段等,小驼峰/大驼峰/短横线/下划线)程序开发时的单数复数及前缀的命名规范(目录名、文件名、函数名、变量名、数据库字段等)总的规范使用本解决方案,特例单独使用。觉不错请一键三连。原创 2024-11-09 13:36:50 · 1768 阅读 · 0 评论 -
程序开发时单数复数及前缀的命名规范(目录名、文件名、函数名、变量名、数据库字段等)
在编程开发中,命名时选择单数还是复数,对代码的可读性和一致性非常重要。这涉及到文件、变量、函数、类、目录等的命名。以下是关于何时使用单数或复数的一些最佳实践建议:如果是集合或数组,则使用复数。2. 函数和方法使用动词开头,通常用单数,因为函数通常描述的是一个动作或行为。如果函数返回多个值或集合,可以使用复数来表明结果。3. 类和接口使用单数:类和接口通常表示一种类型或对象,因此单数更为合适。除非表示的是一个明确的集合类(如、),通常使用单数。4. 数据库表建议使用复原创 2024-11-09 13:16:01 · 1224 阅读 · 0 评论 -
程序开发时字母大小写的命名规范(目录名、文件名、函数名、变量名、数据库字段等,小驼峰/大驼峰/短横线/下划线)
小驼峰命名法在一些需要与 JavaScript 代码风格保持一致的情况下也可以使用,但对于一些不熟悉代码的人来说,可能连字符命名法在视觉上更友好。小驼峰命名法适用于在 JavaScript 代码内部主要使用的文件,而连字符命名法在文件名需要在 HTML(如在script标签的src属性中)或者其他对连字符更友好的环境中引用时比较方便。JavaScript 本身的函数命名习惯就是驼峰命名法,并且在 Vue 组件内部,这样的命名方式与其他 JavaScript 代码风格保持一致,易于阅读和理解。原创 2024-10-26 13:48:25 · 1221 阅读 · 0 评论 -
解决 Vue3、Vite 和 TypeScript 开发环境下跨域的问题,实现前后端数据传递
避免跨域限制:请求通过代理后,看起来是发往开发服务器的,绕过跨域限制。代码简洁:代理后代码路径更简洁,便于管理。环境适配:代理配置使切换环境更方便,只需更改target地址。原创 2024-11-06 22:54:47 · 1462 阅读 · 0 评论 -
不同AI分析错误代码的差异:谁更胜一筹?谁才是最强者?结果出乎意料!
先祝大家新春快乐,我已经提前三天上班了~~为了年后新框架能上线运行,这几天没人打扰,能安静地冲一下代码,嘎嘎嘎。现在是一目了然错在哪里,但开发的时候因为脑子绕在前一个错误的里面没出来,所以一直没看出来错哪里了。。。于是去问AI,顺便比较一下各自的不同。原创 2024-02-16 22:36:47 · 1926 阅读 · 0 评论 -
PHP开发日志 ━━ 深入理解三元操作与一般条件语句的不同
函数声明返回引用,每个返回节点都必须返回真正的变量引用第一种用if分支,每个分支都返回引用第二种三元操作符整体返回一个值,就算内容是引用也不算所以正确应该是第一种if分支写法,而不是使用三元操作符。NULL本身不是一个变量,所以严格来说返回NULL也不算返回变量引用。但是NULL作为一个特殊值,它可以作为非引用值正常返回,不会报错。原创 2024-02-14 19:34:36 · 818 阅读 · 0 评论 -
PHP开发日志 ━━ php8.3安装与使用组件Xdebug
Xdebug是PHP的扩展,并且提供了一系列功能来改善 PHP 开发体验。本文介绍了安装与使用的方法原创 2024-01-10 14:40:39 · 2455 阅读 · 0 评论 -
PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高
我们可以用`isset($arr['a'])` 或者 `array_key_exists('a', $arr)` 来判断`'a'`键名是否存在与`$arr`数组。那么这两种方式哪个运行速度快呢?原创 2024-01-10 00:48:59 · 662 阅读 · 0 评论 -
windows下全免费手动搭建php8+mysql8开发环境及可视化工具安装
最近PHP项目少了,一直在研究UE5和Golang,但是考虑到政府、国企未来几年国产化的要求,可能又要重拾PHP。于是近日把用了N年的框架重新更新至适合PHP8.2以上的版本,同时也乘着新装机,再次搭建php和mysql开发环境。本文留个记录,以后方便操作。原创 2024-01-09 21:52:43 · 1202 阅读 · 0 评论 -
PHP开发日志 ━━ 记录PHP8.2、Mysql8.0之后主要升级的代码部分(实现动态属性/对象引用防止重载属性警告/数据库groupby后的数据调用/datetime字段不为空)内容不断添加中~~
原本直接写这里的属性正规写,就必须要同样,实例化后原本直接写即可但现在升级为8.0以后还这样写,就会出现警告提示,而且未来该写法将被放弃。那么我们就要利用魔术方法将所谓的动态属性写给一个数组来解决这个问题。2. 对象引用和重载错误重载指多个名字相同,但参数不同的函数在同一作用域并存的现象。因为PHP早期以灵活著称,所以传统意义上的重载将可能导致不同函数的覆盖从而出错。解决办法很简单:那就是去掉即可~~哈哈,就是这么简单。原代码:现改为:《PHP对象赋值给变量的两种方式的区别,一般赋值和引用赋值原创 2024-01-09 17:36:08 · 1161 阅读 · 0 评论 -
PHP开发日志 ━━ 基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 适合CryptoJS4.0和PHP8.0
最近客户在做安全等保,需要后台登录密码采用加密方式,原来用个base64变形一下就算了,现在不行,一定要加密加key加盐~~前端使用Cypto-JS加密,传输给后端使用PHP解密,当然,前端虽然有key有盐,但这玩意儿用点心的话,也不过是障眼法而已。原创 2023-12-29 11:12:00 · 2131 阅读 · 0 评论 -
PHP开发日志——循环和条件语句嵌套不同,效率不同(循环内加入条件语句,条件语句判断后加入循环,array_map函数中加入条件语句)
十多年前开发框架时,为了效率不断试过各种代码写法,今天又遇到了,想想php8时代会不会有所变化,结果其实也还是和当年一样,但当年没写博客,但现在可以把数据记录下来了。项目基本情况是一个考试系统调用题库后,根据是否需要随机出选项和是否需要统一改分数这两个条件,循环对每一道题的初始数据进行修改。我是从类的方法里直接截取的代码片段,所以代码部分只需懂意思即可,命名都很容易理解。$result$score3328题8.1.3。原创 2023-12-21 01:01:39 · 201 阅读 · 0 评论 -
php用一个单页读取数据库中带有超链接的内容并提供人工清理链接的功能(超链接部分可替换为任何查询条件)/ 代码拿去用
利用php做一个单页,直接查询mysql数据库中带有超链接的内容,并在页面上让客户判断该内容中的超链接是否需要后手动进行批量清理,超链接直接从数据库查询出来,因此可以改为任何查询条件~~原创 2023-05-04 10:49:46 · 666 阅读 · 0 评论 -
Windows IIS PHP安装redis以及安装redis扩展和tp5使用
精简模式:redis-cli.exe指定模式:redis-cli.exe -h 127.0.0.1 -p 6379 -a requirepass(-h服务器地址-p指定端口号-a连接数据库的密码[可以在redis.windows.conf中配置],默认无密码)如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。Redis-x64-3.2.100.zip是需要解压安装的,接下来讨论的是这种。转载 2022-11-26 00:50:02 · 548 阅读 · 0 评论 -
问题杂编 ━━ windows2016安装php8.1、php8.2及mysql8出现的问题汇总(简直就是*#*o#)
本以为按照正常程序走就完了,结果遇到各种各样的问题,最终只能妥协用低版本成交。这里把所有问题的出现和解决整理出来,避免下次再遇到类似问题。原创 2022-08-24 20:51:06 · 1369 阅读 · 0 评论 -
【私人系列】日常PHP遇到的各种稀奇古怪的问题
在日常维护或开发时,遇到的各种php问题,总结一下,相信自己下次还会遇到~~~~原创 2022-07-30 18:46:57 · 861 阅读 · 1 评论 -
微信开发 ━━ 微信商户v3微信支付查询之php篇
官方指南:《查询订单API》//根据微信订单号查询https://api.mch.weixin.qq.com/v3/pay/transactions/id/1217752501201407033233368018?mchid=1230000109//根据商户订单号查询https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/1217752501201407033233368018?mchid=1230000109总体比较简单,就原创 2022-05-22 11:09:39 · 3631 阅读 · 3 评论 -
微信开发 ━━ 微信商户v3微信支付回调之php篇
开发内容都在这里:微信支付API v3证书和回调报文解密在微信支付时提供一个回调地址,支付完成后微信会向这个回调地址发送一个json格式的报文,将报文内容解密后获取订单号等数据报文内容:{ "original_type": "transaction", // 加密前的对象类型 "algorithm":"AEAD_AES_256_GCM", // 加密算法 // Base64编码后的密文 "ciphertext": "...", // 加密使用的随机串初始化向量) "nonce原创 2022-05-18 01:03:52 · 3941 阅读 · 0 评论 -
微信开发 ━━ 微信商户v3微信小程序支付方式开发之php篇
最近开发了小程序版的微信支付,遇到的情况与之前h5略有不同,主要就是多了一步:通过wx.login()获得code,再由code获取openid,流程中涉及的签名方式也略有不同。之前写过二期native和h5的开发,本篇开门见山直接按照流程来写一写小程序支付的开发。参考前两篇:微信开发 ━━ 微信商户v3微信支付H5方式开发之php篇微信开发 ━━ 微信商户v3微信支付Navive方式开发之php篇一、获取code(前端)小程序支付所用openid只能在服务端利用前端提供的code向微信索取.原创 2022-05-16 16:31:27 · 2489 阅读 · 0 评论 -
服务器配置篇 ━━ IIS7使用https上传发生413错误,响应提示:未显示页面,因为请求实体过大
客户网站用了windows自建的ssl搭建,开始没问题,某天之后本地127.0.0.1上传正常,但外网上传仅限几十K的文件,超出则提示:错误:413;响应:“未显示页面,因为请求实体过大。”一度以为是防火墙的问题,排查未果。今天终于解决问题,整理如下:一、原理官方说明:Client cannot renegotiate request and returns an HTTP 413 error如果 Web 服务器、网站或站点的单个目录或文件上启用了客户端证书,则客户端在上载较大的文件时.原创 2021-09-23 18:13:39 · 2999 阅读 · 1 评论 -
PHP开发日志 ━━ PHP8.0操作MongoDB入门(CRUD)
想要在 PHP 中使用 MongoDB,您需要为 PHP 安装 MongoDB 的驱动,您可以从 PHP 官网(https://pecl.php.net/package/mongodb)下载最新版的 MongoDB 驱动。下载成功后解压得到的压缩包,并将其中的 php_mongo.dll 文件移动到您的 PHP 扩展目录中(默认为“ext”),然后在您的 PHP 配置文件(php.ini)文件中添加如下内容:extension = php_mongo.dll注意:如果您使用的是 phpstudy 之原创 2021-11-18 20:37:17 · 1517 阅读 · 0 评论 -
安全篇 ━━ JWT的用途和安全探讨,编码解码=\=加密解密
什么是JWT?JSON WEB TOKEN,json格式的网络令牌,所以JWT只是一种token形式,可用来解决传统session的一些弊端。它本身和数据安全没有关系原创 2021-11-16 01:19:23 · 3808 阅读 · 0 评论 -
PHP开发日志 ━━ php、javascript生成二维码的三种方法
最简单最实例的goolge开源方法推荐手册:php完全自学手册1.google开放api代码如下:$urlToEncode="http://www.helloweba.com";generateQRfromGoogle($urlToEncode);/** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。 不能混合数转载 2021-06-12 00:53:57 · 454 阅读 · 0 评论 -
微信开发 ━━ 微信商户v3微信支付H5方式开发之php篇
一、流程流程是必须要弄懂的,弄懂之后遇到问题也能知道出在哪里。官方说明:《H5支付统一下单API官方说明》这是native方式开发纪要:《微信开发 ━━ 微信商户native方式支付v3开发之php篇》这是官方的流程图,但说真的,开始看的我头疼,只有等实现过一次后再回头详看才会比较有用。此处介绍h5支付方式。注册商户、申请api证书等前期工作这里不再赘述。注意H5方式只能在手机浏览器里正常实现,不能在微信自带浏览器或PC里操作。1. 准备好“订单号”、“金额”等数据好好看看上面那篇官方原创 2021-05-21 20:56:32 · 3140 阅读 · 7 评论 -
微信开发 ━━ 微信商户v3微信支付Navive方式开发之php篇
一、流程流程是必须要弄懂的,弄懂之后遇到问题也能知道出在哪里。官方说明:《Native支付统一下单API官方说明》这是官方的流程图,但说真的,,开始看的我头疼,只有等你实现过一次后再回头详看才会比较有用。此处介绍native支付方式。注册商户、申请api证书等这里不再赘述。1. 准备好“订单号”、“金额”等数据好好看看上面那篇官方说明里的“请求参数”列表,其中out_trade_no、amount [total]、appid、mchid等等是必要参数。2. 根据要求生成“签名”,需要利用ap原创 2021-05-19 01:21:08 · 2046 阅读 · 7 评论 -
PLUPLOAD插件 ━━ 上传总结(分片上传,php后端处理)
plupload插件官方地址:plupload官方网站参数,方法,设置说明文档地址:配置文档前端使用方法:<!-- 引入plupload文件 --><!-- moxie用来生成图片缩略图 --><script src="./plupload/js/moxie.js"></script><script src="./plupload/js/plupload.full.min.js"></script><script转载 2021-04-06 23:41:10 · 1597 阅读 · 0 评论 -
PHP开发日志 ━━ PHP格式化显示时间date()函数代码
PHP Date/Time 简介Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间。注释:这些函数依赖于服务器的本地设置。使用这些函数时请记住要考虑夏令时和闰年。安装PHP Date/Time 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。Runtime 配置Date/Time 函数的行为受到 php.ini 中设置的影响:名称描述默认PHP 版本date.time转载 2021-03-25 17:00:48 · 493 阅读 · 0 评论 -
PHP开发日志 ━━ jsrsasign、jsencrypt、php实现前后端数据的RSA加密和解密
按照等保要求,密码类的信息必须RSA加密后才能传递:需要对密码传输过程中进行加密方式传输。如采用md5加验或SM1、SM2、SM4、3DES、AES、RSA加密算法,同时也不要直接采用暴露在互联网上的md5、base64算法、URL编码转换。之前仅仅用base64来操作已是明文禁止了。思路还是一样的:“客户端使用js加密,服务端使用php解密”。比较两个客户端js插件:jsencrypt.js 和 jsrsasign 都可以实现加密解密,但 jsencrypt.js 更方便, jsrsa原创 2021-01-05 23:50:21 · 5370 阅读 · 4 评论 -
PHP开发日志 ━━ IIS7安装PHP8.0及多个版本如何同时存在一台服务器
一、准备工作1、安装运行库php8和php5、php6、php7都需要安装对应版本的 Microsoft Visual C++运行库,下载页面左侧说明里有运行库下载路径:VC15 & VS16More recent versions of PHP are built with VC15 or VS16 (Visual Studio 2017 or 2019 compiler respectively) and include improvements in performance and原创 2020-12-27 21:07:50 · 3690 阅读 · 2 评论 -
PHP开发日志 ━━ MYSQL数据库使用UTF-8中文编码乱码的解决办法
今天将公司服务器上的php换成了8.0版,框架里竟然有关解决乱码的一行代码出错了,研究了半天发现是一个隐含了十年的bug…只因以前从不提示错误或警告。顺带一句,以前写函数已经特别注意了要有初始化值,比如 function xxx(a=''){} ,现在换成php8.0后,如果没有初始化值会提示 PHP Deprecated 错误。// 以前代码:set character set "utf8" collate "utf8_general_ci"//现在改为:set character set原创 2020-12-26 22:18:48 · 238 阅读 · 1 评论 -
PHP开发日志 ━━ PHP验证码程序:session生成图片
原网址在这里:http://www.piaoyi.org/php/php-session-code.html昨天网上发现的这位博主,竟然写了十多年技术博客了。推荐一下。转载一篇日记,同时把图片验证打包上传待需要时使用~~昨天捣鼓了一下PHP验证码并生成图片程序,采用了session识别,稍微改进了一下目前网络上流传的PHP验证码,加入杂点,数字颜色随机显示,控制4位数字显示;话不多说了,程序如下,分享出来。效果图如下:PHP验证码程序:session生成图片新建yz.php验证码生成文件:转载 2020-12-14 13:06:52 · 281 阅读 · 0 评论 -
PHP开发日志 ━━ js、php实现前后端数据的base64编码和解码
客户提出要求密码需要加密后传送,为了绕开软件的安全评测,我们采用了三聚氰胺绕蛋白质含量大法:客户端用jQuery_encode(),服务端php_decode()~~由于原页面并未采用ajax,因此采用的思路是:客户端利用jQuery获取密码输入控件的值,并使用js_encode()进行加密,并将加密后的值存入一个隐藏控件,该隐藏控件的name与原密码控件的name一致。服务端接受后利用php自带的base64_decode()解密。这样的话,代码改动是最小的。好了,上代码。javascri原创 2020-11-12 21:23:11 · 483 阅读 · 0 评论