php
从兄
zcong99999@gmail.com
展开
-
php 对比两个数组差集
判断两个数组中不同的值,返回不同值。原创 2024-11-04 16:00:48 · 62 阅读 · 0 评论 -
vue 使用docx-preview 预览替换文档内的特定变量
在开发合同管理中,需要使用到此功能,就是替换合同模板内的一些字符串,如:甲乙方名称,金额日期等,合同内容不变。使用docx-preview 好处是只预览不可编辑内容。接口返回的是文件流,前端插件可直接使用。原创 2024-11-04 11:36:18 · 702 阅读 · 0 评论 -
PHPExcel 导入数据,获取到的内容为object
"_text":"PHPExcel_RichText_TextElement":private] => string(6) "伤寒"["_name":protected] => string(12) "微软雅黑"解决办法也很简单:需要判断一下获取的值是什么类型,然后再根据判断来做相应的获取操作。原创 2024-07-26 14:40:51 · 469 阅读 · 0 评论 -
TP6 模型批量插入获取插入的自增ID
如果要返回批量添加是生成的主键ID,使用saveAll。添加一条数据,返回添加成功的条数。在TP框架中,数据插入。原创 2024-05-25 09:28:28 · 768 阅读 · 0 评论 -
php连接sqlserver 安装sqlserver 驱动windows系统
第一步下载Windows 上的 Microsoft ODBC Driver for SQL Server ODBC 驱动程序。第二步:下载php_sqlsrv 驱动 安装解压后,会有对应php版本的驱动文件,把对应版本的文件放到php/ext下;可以先查看phpinfo() 查看版本信息。配置php.ini 文件 在最后面添加。直接下载安装即可,安装后可查看安装版本。重启php环境 就可以了。原创 2023-11-16 11:21:40 · 827 阅读 · 1 评论 -
PHP foreach 循环跳过本次循环
【代码】PHP foreach 循环跳过本次循环。原创 2023-11-03 17:08:44 · 494 阅读 · 0 评论 -
thinkphp6 自定义命令行command使用
在tp框架中往往需要定义一些命令去大批量的操作行为,直接在控制器中会有超时报错的情况,而且也会很慢,所以就需要使用到tp里的自定义命令行来完成这些操作行为。updatePayDepartmentID方法,我是需要更新用户ID,每次更新5000条,一直更新所有为止。比如:现在有一张表数据有上百万,要更新表中某个字段的值就可以使用自定义命令。php think test ,效果如下,会一直输出更新过的数据ID。原创 2023-10-26 15:55:47 · 2144 阅读 · 0 评论 -
PHPExcel 字母列不够用,针对 AA、AB、AC ... ZZ 这样的列
在PHPExcel 导出功能中,如果字段超过26个字母时,会出现字母不够用A~Z后 AA~AZ来添加后续字段。php中,chr() 函数从指定 ASCII 值返回字符,可以自定义一个方法来返回对应的字母。返回结果为:ABCD....Z AA....AZ....原创 2023-10-19 10:16:47 · 791 阅读 · 0 评论 -
php 计算某个月有多少天
php 函数中有直接获取某个月份的天数的,自定义一个方法来获取某个月份的天数。原创 2023-10-18 09:27:01 · 269 阅读 · 0 评论 -
hyperf框架聚合查询多字段查询
hyperf框架聚合查询(count, max, min, avg, sum)基础使用方法是单个查询的。hyperf框架内使用 first() 实现同时使用聚合查询多个字段。结果如下,返回一个数组。原创 2023-10-14 11:32:56 · 516 阅读 · 0 评论 -
hyperf框架WebSocket 服务
内配置的 WebSocket Server 的。的 Server 的路由配置,这里的。原创 2023-10-10 14:51:41 · 1541 阅读 · 0 评论 -
thinkphp + vue 跨域问题解决
1 比较老的 比较通用,也比较麻烦的 jsonp 原理 利用 这样 只要定义一个回调方法f( data ){ 处理数据 },然后 src 对应的接口需要 返回 f( data );这样的 格式,这样 在 这个数据返回以后就执行了 发f方法,并且带过来数据。jquery 之类的 框架 有多这个 封装,随时随地动态的生产 标签 ,然后取得数据。原创 2023-09-20 09:57:27 · 567 阅读 · 0 评论 -
apifox前置自定义脚本,生成签名
为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝使用apifox工具每次访问都要填写签名很麻烦,写个脚本自动生成签名,解决这种麻烦事。原创 2022-12-10 16:13:00 · 4021 阅读 · 0 评论 -
php中函数参数的引用传递和值传递
php中函数参数有两种传递方式, 分别是按值传递和引用传递。按值传递就是把传入的值进行复制操作, 使得参数和传入的值成为两个独立的个体, 函数内对参数的任何操作都不会影响函数外传入的值。结果输出的值还是 a。原创 2022-11-18 15:20:30 · 541 阅读 · 0 评论 -
hyperf 模型批量更新数据
Hyperf没有批量更新的功能 ,拼接SQL语句的更新的方法,使用CASE,WHEN,THEN原创 2022-11-07 16:39:13 · 1222 阅读 · 0 评论 -
mysql 批量更新数据
Mysql SQL语句实现批量更新数据,update结合case、when和then的使用实例原创 2022-11-07 16:30:51 · 693 阅读 · 0 评论 -
php 生成网站地图txt
根据SEO需要生成站点地图有利于百度爬虫收录,后台需要生成sitemap.txt 文件,内容是站点链接,效果如图。开始后台管理模版,页面比较粗糙。原创 2022-08-25 15:42:37 · 695 阅读 · 0 评论 -
sitemap-php生成网站地图
根据SEO需要生成站点地图有利于百度爬虫收录,后台需要生成sitemap.xml 文件,内容是站点链接,效果如图。我使用的是hyperf框架,所以把 Sitemap类,放到了Services目录中 代码。方法 :表单中的参数没有在方法中接收,根据自己的实际开发来加逻辑即可。下载好Sitemap.php类后,在控制器中使用首先。开始后台管理模版,页面比较粗糙。原创 2022-08-25 15:35:00 · 990 阅读 · 0 评论 -
hyperf框架QueryList(phpQuery)
hyperf框架QueryList(phpQuery)在项目中使用QueryList (use QL\QueryList)直接引用,Composer安装QueryList原创 2022-08-23 17:34:17 · 272 阅读 · 0 评论 -
蓝天采集器(保存数据到mysql)
蓝天采集器,将采集的数据直接保存到mysql数据库,需要自己开发一个插件,操作插入程序,在程序中可以处理采集到的数据,然后插入到mysql数据库中跟着步骤走。采集设置,可设置采集次数、自动采集、图片本地化等设置,或者默认也可以。/*导入数据在这个方法内实现你自己的业务*/...原创 2022-08-01 18:06:30 · 1776 阅读 · 2 评论 -
【hyperf】PhpSpreadsheet导出带图片数据,多图片.xlsx文件
代码】【hyperf】PhpSpreadsheet导出带图片数据,多图片.xlsx文件。原创 2022-07-15 12:22:56 · 1246 阅读 · 1 评论 -
hyoerf 关闭短别名swoole.use_shortname
Swoole short function names must be disabled before the server starts, please set 如图: 在最后面添加 : swoole.use_shortname=Off原创 2022-06-22 08:39:37 · 2924 阅读 · 1 评论 -
码云+宝塔webhook实现同步代码
git同步代码到服务器原创 2022-05-26 11:07:12 · 587 阅读 · 0 评论 -
phpstudy通配符(泛域名)配置
添加第二域名 *保存后vhost.conf文件,有ServerAlias *.xx.yy可以实现泛域名解析如果vhost.conf文件没有就收到修改,添加:ServerAlias *.xx.yy可以实现泛域名解析原创 2022-05-21 09:07:02 · 644 阅读 · 0 评论 -
thinkPHP 多个子查询语句实现
场景是需要统计商品出库入库数量 sql语句:SELECT a1.id, a1.goods_id, a1.goods_name, a1.in_num '入库', a2.in_num '出库'FROM ( SELECT id, goods_id, goods_name, sum( in_num ) in_num FROM goods_in WHERE type = 1 GROUP BY goods_id ) a1 LEFT JOIN ( SELECT id, goods_id, goods原创 2021-09-23 17:05:20 · 310 阅读 · 0 评论 -
PHP7 AES加密解密
PHP7 后 mcrypt_module_open方法已舍弃不可以,需要使用openssl_encrypt加密加密方法:openssl_encrypt($data, $method, $password, $options, $iv)详解:$data:加密的明文;$method:加密方法【DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB】$passwd :加密密钥[密码$options: 数据格式选项(可选)【选项有:0,、OPENSSL_RAW_DATA=原创 2021-08-05 16:19:32 · 568 阅读 · 0 评论 -
PHP三元运算
运算符是"?:"$a = 1;$b = 0;echo $a ? '真': '假';echo $b ? '真': '假';输出:$a = 真 ; $b = 假;PHP 5.3 起,可以省略三元运算符中间那部分echo $a ? : '假';echo $b ? : '假';输出:$a = 1; $b = 假;PHP7+ 版本多了一个 NULL 合并运算符?? (同等于isset() 判断变量是否存在)echo $a ?? '假';echo $b ?? ...原创 2021-07-10 14:51:39 · 438 阅读 · 6 评论 -
tp3集成Workerman
workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库使用tp3框架集成Workerman,需要先把下载的Workerman放到ThinkPHP\Library目录下,把Workerman文件夹下的除Workerman\Lib\Constants.php ,其它所有文件加上.class.php后缀在需要的模块下新建控制器WorkermanController.class.php<?phpnamespace Mo原创 2021-06-24 16:16:58 · 494 阅读 · 4 评论 -
thinkphp config配置信息不生效
这是一个很小的细节问题,会导致很多人都误以为是bug,在配置文件增加配置的时候,在调用的时候总是说没有,这个时候需要先检查debug是否开启了,开启的话是不走缓存,能直接拿到,如果关了或走huan...原创 2021-06-12 17:53:09 · 1396 阅读 · 4 评论 -
php 获取13位时间戳和格式化
php函数time()获取的是10位时间戳,获取13位时间戳需要处理一下,代码如下:list($t1, $t2) = explode(' ', microtime());$str_time = sprintf('%u', (floatval($t1) + floatval($t2)) * 1000);原创 2021-06-08 10:52:04 · 1734 阅读 · 1 评论 -
ajax 此请求没有可用的响应数据
使用jquery(ajax)来发送针对后端的请求。形成并发送了响应,但网络登录chrome表示此请求没有响应数据。错误原因是因为后端没有按ajax 返回类型进行返回数据原创 2021-06-07 16:31:46 · 5114 阅读 · 0 评论 -
thinkphp Invalid numeric literal报错
整形处理机制修改:无效的八进制数字(包含大于7的数字)会报编译错误加上引号就好array(1,3,5,7,8,01,12);//源代码数组为添加引号原创 2021-06-01 10:23:52 · 1565 阅读 · 4 评论 -
mysql常见报错之SELECT list is not in GROUP BY clause
开发中使用group by报错,错误信息: 1055:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column原来是因为mysql5.7及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表解决方法:1、查询sql_mode sql:select @@global.sql_mode;2、去掉ON...原创 2021-05-21 09:53:21 · 1387 阅读 · 1 评论 -
PHP 多维数组排序
数组$data=array( 0=>array('age'=>34,'name'=>'小1'), 1=>array('age'=>45,'name'=>'小2'), 2=>array('age'=>47,'name'=>'小3'), 3=>array('age'=>12,'name'=>'小4'), 4=>array('age'=>15,'name'=>'小5'), 5=>原创 2021-04-22 13:31:11 · 252 阅读 · 0 评论 -
腾讯IM php后端接口
引入IM类use Hedeqiang\TenIM\IM;添加IM账号/** * 添加IM账号 * @param [type] $userid [用户id] */function add_imimport($user_id){ $config = [ 'sdk_app_id' => '14app_id',// 腾讯IM appid 'identifier' => 'administrator', 'secret_key'原创 2021-03-09 11:16:00 · 1128 阅读 · 0 评论 -
PHP 两个日期时间相差天数
$start_time = time(); // 当前时间$end_time = time(); // 结束时间if($end_time <= $start_time) return '结束时间不能小于开始时间';$start_date = date('Y-m-d', $start_time);$end_date = date('Y-m-d', $end_time );$datetime_start = new \DateTime($start_date);$datetime_end .原创 2021-03-09 10:00:00 · 411 阅读 · 0 评论 -
TP框架支付宝小程序支付
支付宝小程序支付(支付宝小程序支付使用的是支付宝app支付),同样的支付需要跳转回小程序内进行支付原理tp方法public function alipay(){ vendor('appalipay.AopSdk');// 加载类库 $config = array( 'appid' =>'小程序appid',//商户密钥 'rsaPrivateKey' =>'',//私钥 'alipa原创 2021-03-01 14:25:18 · 367 阅读 · 4 评论 -
TP5数据库事务处理
try { Db::transaction(function () use ($userData) { // $userData 外部传参的变量名 $userRes = User::updateData($userData, [], true); // 编辑用户表 if ($userRes) { return true; // 成功...原创 2021-03-01 11:45:40 · 421 阅读 · 0 评论 -
支付宝小程序登录 -tp
1.在小程序端获取 auth_code,目的是获取用户授权码2.把第一步获取的授权码 auth_code 传到后台接口3.后台拿到这个 auth_code 之后,需要调用支付宝的授权平台,从而获取用户的唯一 token 以及 支付宝的userid,都是唯一的,调用的接口为 [alipay.system.oauth.token]。获取到userid后,判断一下这个userid是否在我们自己的数据库中存在,如果存在,直接获取信息,并且直接返回用户对象到前台;如果不存在,则需要从支付宝授权平台再一次去获取原创 2021-03-01 11:30:12 · 2081 阅读 · 3 评论 -
支付宝小程序加密报文获取电话号码-TP
1.支付宝小程序获取电话号码,先要签约(获取会员手机号)签约成功2.设置支付宝(接口内容加密方式)3.后端代码解密报文获取电话号码// 支付宝解密获取敏感信息 public function alipayAes() { $encryptedData = $this->request->param('encryptedData'); // 小程序获取的报文,内有加密信息和签名 if(empty($encryptedData))原创 2021-03-01 11:01:58 · 1038 阅读 · 0 评论