PHP
zhang-php
自己选择的路,自己喜欢的事,无论如何都可以坚持下去……
展开
-
thinkphp6 实例化调用控制器时报错
thinkphp6 实例化调用控制器时报错,引入其他控制器方法报错原创 2022-10-21 12:36:51 · 1652 阅读 · 1 评论 -
php \n 符号换行无法输出
从接口拿到的json数组,数组中文字部分有换行,用json_decode转php数组后,输出在html页面竟然没有换行,一开始我以为是转数组后换行符号被删除了,后面用字符替换各种办法试了一遍,最后搜到了一个CSS样式:white-space属性指定元素内的空白怎样处理,默认值normal(空白会被浏览器忽略).........原创 2022-06-17 17:24:48 · 409 阅读 · 0 评论 -
小程序发送订阅消息,微信公众号发送消息模板
首先讲两个注意事项1、小程序和微信公众号的用户openid是不同的。2、小程序需要用户手动授权订阅消息通知。关于小程序和公众号AppID和AppSecret的获取可以自行百度一下,挺简单的。小程序订阅消息1.1 在后台选中自己需要的模板和相应的字段,注意不同的字段字符长度和格式的问题。参考文档:subscribeMessage.send | 微信开放文档【订阅消息参数值内容限制说明】1.2 小程序授权按钮1.3 我这里用的HTTPS发送,代码是php 公众号模板消息推送 2.1 微信公众原创 2022-06-13 16:58:08 · 3801 阅读 · 0 评论 -
phpcms验证码不显示
问题:网站部署到服务器之后验证码不能显示解决:caches/error_log.php 修改 777权限原创 2021-10-13 10:24:38 · 257 阅读 · 0 评论 -
thinkphp6 + phpexcel 导入导出数据,设置特殊表格
第一步:安装excel,使用composer安装,我的是在window下,直接cmd 切换到xicomposer require phpoffice/phpexcel原创 2021-05-30 17:25:23 · 3637 阅读 · 7 评论 -
thinkphp6 + mysql 处理千万级以上的数据查询
我的框架是tp6,查询是本来的查询方法,数据有2千多万条,导致查询的时候卡的不行。注意数据建表的时候使用原创 2021-05-30 13:54:40 · 2707 阅读 · 0 评论 -
php 微信 jssdk 分享到朋友和朋友圈,带缩略图
最近修改了一下转发链接到朋友和分享朋友圈没有缩略图的问题,以前都可以直接抓取的,现在官方改了,只能用微信JS-SDK接口。话不多说,进入正题。1、在认证好的公众号里面配置业务域名和JS接口安全域名,具体位置在微信公众号平台,设置—公众号设置—功能设置。2、需要用到的文件:这里有写好的模板,忘记留大神的链接了,这是别人写的。我这里只用了php的,自己改了一下前端的分享模板。链接:https://pan.baidu.com/s/1zYd-m4lfUxarCdLhs3KW0w提取码:rwz.原创 2021-05-06 14:19:03 · 1046 阅读 · 2 评论 -
file_get_contents(jsapi_ticket.php): failed to open stream: No such file
No such file 还不明显吗?没有这个文件,自己新建一个原创 2021-05-06 10:28:03 · 712 阅读 · 0 评论 -
php 自定义生成短链工具
因为公司的需求,需要发送推广链接到短信,一开始都是调用别人的链接,后面发现经常有链接失效的情况,极其不稳定,后面索性改成自己的域名来弄。话不多说,上代码:后端链接生成,我这里是thinkphp6框架:<?phpnamespace app\admin\controller;use think\Controller;use think\Validate;use think\facade\Request;use think\facade\Db;use think\facade\Sess原创 2021-05-05 16:12:33 · 461 阅读 · 4 评论 -
php + h5 微信支付,h5调用微信支付并提交数据
思路:表单页—中间页(支付)—数据提交的后台页—返回表单页单位需要做推广页面的支付,微信浏览器里面调用支付比较好弄,官方有详细的demo,这次需要增加一个h5页面调用微信支付,头一次写,按照自己的逻辑来的,反正是成功了。我的数据提交页面是一个纯html页面,里面有表单,然后表单action带着我的输入框的参数一起提交到支付页面,支付页面把表单参数接收了,值就跟着支付完的返回地址一起跳转到数据写入数据库的后台程序页面,程序页面完成数据写入之后再用header跳转到最开始的表单页(这时候的跳转url记得带个原创 2021-04-25 15:44:39 · 3082 阅读 · 0 评论 -
ecshop 安装程序已经被锁定
安装了一遍,出现这个,然后按照提示删除了data文件夹下的install.lock文件,再次按照依旧出现这个,发现情况不对,于是看数据库已经有了,判断安装已经成功了,将install安装目录改个名字即可,就不会出现这个情况。注意:php版本尽量5.6...原创 2021-04-08 10:03:47 · 718 阅读 · 2 评论 -
织梦火车采集器采集完文章并更新栏目页
打开文件 /dede/inc/inc_archives_functions.php1、在最后增加方法/*火车头采集自动更新主页*/function MakeIndex(){ global $dsql,$cfg_basedir,$cfg_templets_dir,$cfg_df_style; require_once(DEDEINC.'/arc.partview.class.php'); $envs = $_sys_globals = array(); $envs原创 2021-03-10 09:55:04 · 327 阅读 · 0 评论 -
mysql在某个字段中(字符)匹配出特定的字符
话不多说,上例子,下面截图是数据表的一个备注字段,我需要找到当前患者的入院时间,需要在备注中根据关键字“住院治疗”来查找。select id,name,if(memo like '%住院治疗%',substring_index(substring_index(substring_index(memo,"住院治疗",1),"[",-1),"]",1),'') as '住院治疗' from guest;--memo 是备注字段--思路,首先判断是否有备注住院治疗,有才查询日期,如果没有那就.原创 2020-11-17 11:15:23 · 1794 阅读 · 0 评论 -
phpmyadmin(mysql) 删除操作日志 Windows环境
在phpmyadmin相关安装目录中 logs/mysql_log.log 文件。这个文件会随数据的增加变得越来越大,可以在环境配置中修改自动清除日志,我这里讲手动,因为自动的话怕数据出错。下载一个专门可以打开log文件格式的软件(点击进入下载:https://www.jb51.net/softs/176101.html),点击LogView.exe,点击工具栏(文件——清除日志即可)...原创 2020-10-05 17:03:36 · 813 阅读 · 0 评论 -
php正则表达不连续的多个字符(类似mysql的模糊匹配)
//如下:我需要判断当前链接是否包含4g.6713和sg01$url = 'http://4g.67137777.com/special/20190709.html#sj-bensheng-sichuan-sg01-c066-jzxfy-yiwen-gjc0459161';if(preg_match('/4g.6713.*sg01/',$url,$matches2) > 0){ dump($matches2);}//注: preg_match()会返回符合条件的个数...原创 2020-08-28 14:40:43 · 609 阅读 · 0 评论 -
js网页打开加载几秒之后自动执行某个方法,js执行点击函数
//页面跳转function pageJump(i){ window.setTimeout(function(){ i--; if(i > 0){ pageJump(i); }else{ window.location.href = 'http://www.baidu.com'; } }, 1000); } pageJump.原创 2020-07-18 14:28:52 · 2166 阅读 · 0 评论 -
php 时分秒转为秒,秒转化为天时分秒
一、分秒转为秒/* * 获取时分秒,转化成秒 * 8小时5分5秒 */function turnSecond($str){ $hour = 0; $minute = 0; $second = 0; if(strpos($str,'时') !== false){ $strArr1 = explode('时',$str); $hour = $strArr1[0]; $strArr2 = explode('分',$st原创 2020-07-11 23:39:42 · 1159 阅读 · 0 评论 -
thinkphp6数组分页
一、因为有复杂的数据统计,需要组数组,这时候使用tp6的分页会有问题,于是改为数组分页的方式,将以前tp3的分页拿过来改了一下,话不多说上代码,引入tp3分页源代码,为了和tp6的区别不会太明显,修改了源代码,放入tp6 \vendor\topthink\framework\src\think 下:修改详情:1、样式(ul li)2、C方法改为 config3、U方法改为 url4、ACTION_NAME改为:$request = \think\facade\Request::in.原创 2020-06-27 17:02:48 · 1529 阅读 · 0 评论 -
MySQL 同一字段匹配多个值,时间分组查询
表结构SQL语句:--sql语句,根据时间分组查询,因为我数据库存储的时间戳所以使用from_unixtime函数select from_unixtime(sw_startTime, '%Y-%m-%d') 日期,count(if(sw_guestMsg=1,sw_guestMsg,NULL)) 1句话,count(if(sw_guestMsg=2,sw_guestMsg,NULL)) 2句话,count(if(sw_guestMsg=3,sw_guestMsg,NULL)) 3句话 fr.原创 2020-06-08 10:03:16 · 1826 阅读 · 0 评论 -
thinkphp6同一字段多个like条件
这几天弄了一个多条件的模糊匹配,然后我还发现not like的多条件竟然和like的多条件不一样,害我苦苦研究了一下午,差点就直接是哪个原生代码了。//注意or在数组中的位置not like : $map[] = ['sw_visitUrlFirst','not like',['%bd02-c%','%bd02-f%','%sg04%','%sm04%','or']];like:$map[] = ['sw_visitUrlFirst','like',['%bd02-c%','%bd02-f%',原创 2020-06-08 09:47:05 · 3368 阅读 · 0 评论 -
layui2.5.5合计行取整,根据表中数据,该整数就整数,该取小数就计小数
table.js表大概494行,找不到就搜"toFixed(2)"var e = n.totalRowText || "",i = {},t;//t = parseFloat(a[o]).toFixed(2),if(parseInt(a[o]) == a[o]) //是否是整数 t = parseFloat(a[o]).toFixed(0);else t = parseFloat(a[o]).toFixed(2); //var i = {};return i[o] = t,.原创 2020-06-05 16:12:00 · 1551 阅读 · 0 评论 -
微信原生小程序支付,补坑(openid无法获取),支付jsapi缺少参数total_fee
弄个支付,折磨了我三天,哈哈,还在功夫不负有心人,支付的商户是在公众号申请的,申请流程我就不多说了,微信公众号那边的支付我这里也不多说了。小程序性要使用公众号的支付商户,这里在小程序公众平台中关联商户即可。第一步:获取用户openid,一开始想着从外部写php代码来获取,后面试了老半天总是不成功,然后改变主意,直接在小程序中调用官方提供的接口,如下://app.jsApp({ onLaunch: function () { // 展示本地存储能力 var logs = wx.原创 2020-05-17 17:50:16 · 2324 阅读 · 0 评论 -
织梦自定义标签,还有模板页字段无法输出的注意事项
一、登录后台,模板—标签源码管理—[增加一个新的标签](注意这里,先创建页面,不要着急写代码,保存的时候如果出现“DedeCMS:CSRF Token Check Failed!”,请打开/dede/config.php,在69行左右,那串错误提示函数的第一行加一个return)二、打开新建的标签页面,如下:<?php/* author: zhang time: 2020-5-13 13:50 qq: 193548305@qq.com*/if(!defined('DEDE原创 2020-05-13 14:44:06 · 267 阅读 · 0 评论 -
关于网站层级优化(织梦dede)
一般我们说的层级优化是指网站url优化和网站物理优化,这里我记录一下织梦建站的网站url优化,要求:原:http://xxx.com/html/yiyuanxinwen/2020/0318/370.html改:http://xxx.com/html/yyxw/370.html登录织梦后台,核心——常用操作——网站栏目管理——选择你需要修改的栏目——按照下图修改并保存——然后选择生成——...原创 2020-04-01 11:25:32 · 472 阅读 · 0 评论 -
thinkphp6视图输出字符串内容替换
/config/template.php// 视图输出字符串内容替换'tpl_replace_string' => [ '__public__' => '/public', '__css__' => '/public/css', '__js__' => '/public/js', '__lib__' => ...原创 2020-03-31 15:24:07 · 1644 阅读 · 0 评论 -
composer安装laravel管理器
1、首先安装composer,安装方法自行百度,注意php版本 PHP >= 7.1.32、设置全局镜像,之前我用的国内的,发现还是太卡了,索性改成了阿里的。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/3、下载laravel安装器。composer globa...原创 2020-03-29 17:13:19 · 131 阅读 · 0 评论 -
关于微信页面一直授权
最近自己又犯了低级错误了,我这里是做用户进入个人中心的微信授权,开发框架tp6,一直跳转的原因一般都是我们自己的重定向问题:1、重定向次数过多,导致code多次使用。这个问题的解决方法是添加:connect_redirect=1详细添加方法:$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$W...原创 2020-01-03 10:47:13 · 1672 阅读 · 0 评论 -
thinkphp + mui 移动端上拉加载分页
框架thinkphp6,后台代码:public function wClass(){ //每页显示条数 $num = 5; $map[] = ['vi_status','=','1']; //+++++++++++++++++++++++ ajax获取下一页 开始+++++++++++++++++ ...原创 2019-12-17 17:29:10 · 882 阅读 · 0 评论 -
layui + thinkphp 文件上传带进度条(我这里直接使用了上传进度的百分比,没有使用进度条)
关于后台文件代码(使用框架 thinkphp6):// 获取表单上传文件$file = request()->file('file');if(empty($file)){ return json(['info'=>'请选择上传文件!','status'=>0]);}// 移动到框架应用根目录/public/upload/ 目录下$info = $file-&...原创 2019-12-03 09:11:03 · 2054 阅读 · 0 评论 -
php从数组中随机获取值,拼接成新的随机字符串
//数组封装$enStr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T...原创 2019-11-21 16:00:57 · 658 阅读 · 0 评论 -
layui 动态表格移除复选框以及某个元素
表格是动态生成的,我这里是需要移除第一条数据的删除功能,所以我将删除的复选框和删除图片隐藏,我这里采用了最直接的方法,js移除元素,但是会有一点小bug,移除或者改变元素后反选不能使用了,非动态表格可以直接使用。//表格layui.use('table', function(){ var table = layui.table; //移除超级管理员的删除按钮 $...原创 2019-07-11 17:01:35 · 2327 阅读 · 0 评论 -
php 或 js 计算base64 文件流大小
//框架是tp5的$base64 = input('img'); //接收图片‘//data:image/jpeg;base64 这里要根据自己上传的图片格式进行相应的修改 $base64 = str_replace('data:image/jpeg;base64,', '' ,$base64);$base64 = str_replace('=', '',$base64);...原创 2018-08-22 15:32:53 · 4328 阅读 · 1 评论 -
关于PHP冒泡排序
//冒泡排序,从小到大 定义一个随机的数组$arr = array(8,5,10,6,9,7,11,2,1,3,4,12);$len = count($arr); for($i = 1; $i < $len; $i++){ //控制轮次数 for($j = 0;$j < $len-$i; $j++){ //控制次数,并判断大小交换位置 ...原创 2019-09-28 09:36:15 · 145 阅读 · 0 评论 -
thinkphp6无限级分类,树状菜单
这里是菜单,针对于类似官网首页的菜单导航,因为不限制用户填写菜单的级别以及个数,所以需要做无限级分类,原理就是将所有数据查询出来,然后根据其父级id和级别id来进行遍历,并一边遍历一边增加级别id来反复查询,并将数据一一追加进之前的数据中://我的框架是thinkphp6 ,这个函数定义在common.php中/** * 无限分类-菜单 * @param $cate arra...原创 2019-09-19 16:23:22 · 4854 阅读 · 0 评论 -
php自定义菜单模块的开启与关闭
最近项目中要用到菜单的开启与关闭,自己研究了一下,项目使用的框架分别是ThinkPHP5 和 H-ui.admin,因为一开始做了权限,使用的是ThinkPHP5定义过的Auth.php,在tb_auth_group.sql数据表中添加module字段,存储方式:一级菜单键值加“-”链接二级菜单键值。如下:这里随便例举,不是完整的哈,在common.php中菜单函数封装如下:/* ...原创 2018-11-29 12:00:02 · 880 阅读 · 0 评论 -
ThinkPHP5 + PHPExcel 批量导入导出(部分注意事项)
在网上下载PHPExcel资源包,置于vender文件夹之下,也可以点击我的网盘分享:https://pan.baidu.com/s/1v2_oMMSvwTcebG9F3YQJqQ先说两个注意事项:1、部分php7环境的朋友可能在导出的时候不能执行:$objWriter->save('php://output') 语句(我就是这种情况),此时将PHPExcel插件中(PHPExcel...原创 2018-11-05 16:28:12 · 978 阅读 · 0 评论 -
ThinkPHP : Illegal offset type in isset or empty ,环境php7
最近做权限访问,把php版本升级到7,突然发现本来的Auth.php竟然报错了,一步一步调试之后,发现是写法不兼容,于是改了一下类控制器,代码如下://把Auth.php 197行的查询$user_groups = Db::view($auth_group_access, 'uid,group_id') ->view($auth_group, 'title,r...原创 2018-11-07 09:29:57 · 2863 阅读 · 0 评论 -
drop table 和 delete from 的区别(删除数据表)
//drop table 表名 //删除表 //delete from 表名 //删除表数据 //show tables like 表名 //查询是否有表的存在原创 2018-10-27 15:04:46 · 2055 阅读 · 0 评论 -
Thinphp5 使用原生sql语句,新建数据表(标点符号的那些坑)
项目中有新建数据表这个功能,把建表的代码写好,但是却怎么也用不起,一直报错,研究了一个多小时,才发现标点符号这个坑,英文状态下的单引号不能用,要报错,需要英文状态下按下面这个键:建表代码:/* 菜单评论表,根据菜单id来新建 */public function createComment($menuId = NULL){ $table = 'tb_commen...原创 2018-10-27 10:25:34 · 319 阅读 · 0 评论 -
PHP获取百度编辑器上传文章中的第一张图
一开始想的用关键字查找,结果网上看了一大堆,没有符合我的,不知道是我上传图文的格式跟大家不一样还是咋的。然后自己写了一套方法,以关键字分割再组成数组,去获取图片的src里面的链接,上传的时候配置路径是:/lth/Public/upload/images/时间/时间戳/文件后,接下来以路径去匹配,查询这里就略过,直接看调用方法: $arr1 = $BannerLogic->...原创 2018-09-30 16:57:25 · 791 阅读 · 0 评论