ThinkPHP
zhang-php
自己选择的路,自己喜欢的事,无论如何都可以坚持下去……
展开
-
thinkphp6接入阿里云短信实战和踩坑
下载完之后随便你放哪里,但是要在你当前使用版本的php.ini 中的配置一下正确的引用路径,在 curl.cainfo 后添加路径 : curl.cainfo = "D:\phpcacert\cacert.pem"这里注意一下流程:买完短信服务包后,需要把短信签名,AccessKey,短信模板(一般验证码这种模板是默认赠送的,可以直接使用)先申请,签名和模板是需要审核时间的,具体的操作请在控制台根据提示进行。1、下载sdk,注意切换到你的项目目录下去,我的。以为这样就能顺利发送吗,no,即将遇到。原创 2022-10-22 10:25:26 · 2692 阅读 · 1 评论 -
thinkphp6 实例化调用控制器时报错
thinkphp6 实例化调用控制器时报错,引入其他控制器方法报错原创 2022-10-21 12:36:51 · 1652 阅读 · 1 评论 -
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 评论 -
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 评论 -
thinkphp6视图输出字符串内容替换
/config/template.php// 视图输出字符串内容替换'tpl_replace_string' => [ '__public__' => '/public', '__css__' => '/public/css', '__js__' => '/public/js', '__lib__' => ...原创 2020-03-31 15:24:07 · 1644 阅读 · 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判断上传文件的格式
/** * 返回文件格式(附件类型) * @param string $file 文件名 * @return string 文件格式(1:文件、2:压缩包、3:图片、4:视频、5:音频、6、其他) */function file_format($file){ // 取文件后缀名 $str = strtolower(pathinfo($file, PATHINFO_E...原创 2019-06-13 09:35:58 · 1555 阅读 · 0 评论 -
php百度编辑器多图上传(图片顺序混乱,图片丢失,图片重复,图片获取)
php版本7,使用框架ThinkPHP5,今天无意中发现使用百度编辑器的多图上传出现了一个bug,我同时上传了三张图,但是实际传入我文件目录中就一张,在编辑器预览确实三张同样的,琢磨半天,原来是命名的问题。1、图片顺序混乱(ueditor\dialogs\image\image.js)//将下面代码替换,我的在724行//_this.imageList.push(json);_thi...原创 2019-05-07 15:30:55 · 1266 阅读 · 0 评论 -
使用layui 表单select异步查询动态添加option元素无效或者事件第二次点击才生效
使用layui动态修改select中的option选项,一开始遇到select总是第二次变化才生效,几经周折,终于修改了一份较为适用的写法:html页面:<!--父级包裹器,定义id 等会儿用它来追加元素--><div class="layui-form-item" id="menu_parentid"> <label class="layui...原创 2019-04-25 16:21:09 · 2386 阅读 · 0 评论 -
thinkphp5 数据备份与还原(关于还原太慢已经解决)
使用thinkphp官方的一直没有研究出来,在网上作弄右弄的看到了一份比较合适的,大神的文章暂时找不到了,还是感谢哈。备份完全ok,只是还原有点小bug,大神的数据是一条一条的插入的,我改成了批量直接写入,果然快了很多。资源地址:链接:https://pan.baidu.com/s/113icZW3-VkgatIgBzvZGyQ 提取码:bfaf以下附上我更新的地方,大概有六个地方:/...原创 2019-04-12 11:13:42 · 845 阅读 · 0 评论 -
php把文章的px转换成rem
最近项目中写移动端,因为编辑器的内置样式,需要在移动端输出的时候改变字号以及单位,所以需要替换所有包含“px”,参考原文:http://www.thinkphp.cn/topic/59967.html我自己稍微做了一些修改,代码如下:/* * 替换移动端单位px --- rem * $content 文章内容 * $fontsize 手动指定字号*/public functio...原创 2019-04-04 16:44:56 · 347 阅读 · 0 评论 -
php导入csv不能识别部分中文以及特定字符
//我遇到的情况是不能识别㎡这种字符和不能识别类似于繁体字的文字更改前:iconv('gb2312','utf-8',$rr[0]);更改后:iconv('GBK','UTF-8//TRANSLIT//IGNORE',$rr[0]); ...原创 2018-12-17 11:10:03 · 1288 阅读 · 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 评论 -
tp5 nginx 隐藏入口文件,指定前后台模块
1、服务器上打开nginx.conf文件,追加如下代码,即可实现隐藏入口文件location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }2、单独指定前后台模块,项目根目录下...原创 2019-07-23 17:23:51 · 1288 阅读 · 0 评论 -
nginx 配置多个域名,指定到不同的web项目包
自己一开始傻傻的各种配置,后来发现只需要将默认的整个server数组复制,修改域名和根目录即可,如下有注释的地方。######################## add new project############################ server { listen 80; server_name www.xxxx.cn; #域名,重点修改#######...原创 2019-07-23 17:29:38 · 1583 阅读 · 0 评论 -
mui picker选择器动态赋值不成功
后端使用thinkphp6框架,查询数据,按照需求封装成前端需要的json数组格式,原始数据如下:开始处理数据:public function index(){ $industry = industry(); //行业详情 ,查询出来的数据,如上面的二维数组 $arr = array(); //空数组 用于存储前台需要的数据 fore...原创 2019-10-10 14:40:05 · 1468 阅读 · 0 评论 -
关于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 评论 -
thinkphp6 验证码(配置,验证一直不通过,验证码不显示)
最近接触到thinkphp6的RC3版本,验证码都搞了我好长一段时间。1、关于这个版本验证码的配置,官方文档中详细说明了,如果使用扩展内置的方法进行验证码显示,直接在应用的config目录下面的captcha.php文件(没有则首先创建)中进行设置即可,以下设置方式仅限于独立调用Captcha类的时候使用。所以我在config下自己创建了一个配置文件,需要的配置可参照文档自行配置:配置...原创 2019-09-19 10:03:24 · 11036 阅读 · 0 评论 -
tp6内置验证规则整合
原文:https://www.kancloud.cn/manual/thinkphp6_0/1037629,因为文档太长了,这里是整理来方便自己查看的,箭头后面的单词即为定义好了的验证规则,直接调用即可,多个规则一起使用的时候使用竖线分隔“|”$info = Request::param(); //接收值 //数据验证 $validate = new Valid...原创 2019-09-16 11:16:49 · 10804 阅读 · 0 评论 -
uni-app 利用 rich-text 展示富文本内容,图片的宽度溢出屏幕
1、在App.vue组件中(h5),直接在App.vue修改即可:2、关于小程序里面图片溢出问题,这里借鉴一个大神的文章(附上原文:https://www.jb51.net/article/154976.htm)我将主要部分引入了我的vue页面:<template> <view class="page-body"> <view class="c...原创 2019-09-03 16:44:41 · 24980 阅读 · 12 评论 -
时间戳计算两个时间段的间隔为几小时几分钟
首先介绍几个PHP取整数的常用方法:1、直接取整,舍弃小数,保留整数:intval();2、四舍五入取整:round();3、向上取整,有小数就加1:ceil();4、向下取整:floor()//2019-08-05 11:20:48 2019-08-05 09:22:48$num = 1564975248 - 1564968168;//时间转化 7080$hour ...原创 2019-08-07 09:35:30 · 6067 阅读 · 0 评论 -
跨站脚本攻击漏洞
我的环境是php,框架是thinkphp5,直接在获取前端值的地方,加上htmlentities() 或 htmlspecialchars()//全局搜索$keyword = htmlspecialchars(input('txt_search'));原创 2019-08-04 23:14:34 · 254 阅读 · 0 评论 -
php连续取几个随机数
//range 是将0到100列成一个数组$num = range(0,100);//shuffle 将数组顺序随即打乱shuffle($num);//array_slice 取该数组中的某一段$res = array_slice($num,0,5);dump($res);die; //输出array(5) { [0] => int(38) [1] => ...原创 2019-08-03 14:11:54 · 1005 阅读 · 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 评论 -
Thinkphp5 + uploadify 整合图片上传
项目中需要上传菜单的图标,最近大家都用TP5,我也与时俱进了一把,开始自己想太多了,在返回值那里栽了跟头,脑袋里一直都是json,json,这里的返回值直接return就好了,不要去搞成json数据,这里还是附上代码,给自己警示作用,说不定哪天又忘记了……<!--前端,引用的文件我就不多说了哈该有的js,css一定不要忘记了--><div class="ro...原创 2018-10-26 17:52:21 · 493 阅读 · 0 评论 -
基于ThinkPHP头像上传实例
参考:http://www.thinkphp.cn/topic/29123.html如果上面的链接失效的话就在这下载:https://pan.baidu.com/s/1nvgOid7 提取码 :j8p6将参考网址中的文件复制到自己的项目中,主要需要第三方扩展文件中的(Vendor/ThinkImage),Public中的相关css和js,因为项目需要,将人家的修改了一点点,上传后的图片直接...转载 2017-12-12 15:02:36 · 3125 阅读 · 7 评论 -
php读取富文本编辑器编辑后的文章内容,并去除所有html标签、空格以及空白,截取字符串(包括中文)
/*** 去除Html所有标签、空格以及空白,并截取字符串(包括中文)* @param string $string 字符串* @param number $sublength 字符串长度* @param string $encoding 编码方式* @param string $ellipsis 省略号 */function cutstr_htm原创 2017-11-23 11:08:06 · 4416 阅读 · 0 评论 -
PHP删除磁盘文件
近期在给用户做系统的时候,发现要涉及到文件的删除,这里记录一下,当给自己做个笔记好了非中文名称的文件(网页编码utf-8)$filename = I("filename"); //文件名称$filepath = realpath('./Public/upload/files/'); //文件路径unlink($filepath.$filename); //使用unlink方法删原创 2017-11-23 09:57:56 · 365 阅读 · 0 评论 -
php身份证号码验证
public function checkIdcard($vStr) { $vCity = array( '11','12','13','14','15','21','22', '23','31','32','33','34','35','36', '37','41','42','43','44','45','46', '50','51','52',翻译 2017-09-22 15:09:02 · 177 阅读 · 0 评论 -
网页数据显示条数改变(无序列表仿下拉菜单)
index.htmla{ color:black; text-decoration:none;}a:hover{ color:#2e2d3d; text-decoration:none;}#showBox b{ float:left;} 显示条数: 默认为10条原创 2017-05-05 10:55:17 · 2664 阅读 · 0 评论 -
php获取系统信息的相关方法
获取系统类型及版本号: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)只获取系统类型: php_uname('s') (或:PHP_OS,例:Windows NT)只获取系统版本号: php_uname('r')获取PHP运行方式: php_sapi_name() (PHP run mode:apache2handler)获原创 2017-09-11 13:55:14 · 1659 阅读 · 0 评论 -
thinkphp+uploadify上传图片,实现缩略图浏览
首先下载uploadify插件,链接 http://www.uploadify.com/demos/引入js库文件:jquery-3.1.1.min.js引入uploadify核心js文件:jquery.uploadify.min.js模板页面:index.html$(function(){ $('#file_upload1').uploadify({原创 2017-09-16 13:53:25 · 374 阅读 · 0 评论 -
php文件下载
php控制器public function upload(){ $filename = realpath('./files/public/word/sc.doc'); //文件路径及名称,文件名尽量不要使用中文 $name = "**手册.doc"; //指定下载后的文件名 header( "Content-type: application/octet-原创 2017-08-14 17:44:13 · 168 阅读 · 0 评论 -
模态框混合使用百度编辑器时工具栏的浮动问题
bootstrap模态框中下拉框的浮动:z-index:1000百度编辑器的默认浮动为:zIndex:900; //编辑器层级的基数,默认是900(ueditor.config.js中65行左右)如果下拉框不能使用就 修改:zIndex : 1100原创 2017-06-04 15:16:41 · 1824 阅读 · 0 评论 -
thinkphp关于考生信息相关统计
最近做的系统里面需要统计,写了一个案例,方便自己以后查看相关数据表和字段名:1.考生信息表(tb_examinee)序号字段名数据类型约束条件备注1eidint主键自增2idnumchar(18)非空身份证号码3truenamevarchar(50)非空原创 2017-05-26 15:05:00 · 339 阅读 · 0 评论