thinkphp
lmp5023
这个作者很懒,什么都没留下…
展开
-
setEagerlyType字段理解
官方文档介绍:V5.0.4+版本开始一对一关联预载入支持两种方式:JOIN方式(一次查询)和IN方式(两次查询),如果要使用IN方式关联预载入,在关联定义方法中添加。原创 2023-08-01 14:59:30 · 975 阅读 · 0 评论 -
微信小程序登录报错:Message: cURL error 60: SSL certificate problem: unable to get local issuer certificate
这是由于后端使用了easywechat,而他封装的时候会检测ssl,这是 SSL 证书问题所致,在使用 SDK 调用微信支付等相关的操作时可能会遇到报 “SSL certificate problem: unable to get local issuer certificate” 的错误。微信公众平台提供的文档中建议对部分较敏感的操作接口使用 https 协议进行访问,例如微信支付和红包等接口中涉及到操作商户资金的一些操作。wechat SDK 遵循了官方建议,所以在调用这些接口时,除了按照官方文档设置转载 2022-06-15 09:54:03 · 1717 阅读 · 1 评论 -
vue前后端分离获取不到session的原因与解决方法
首先要了解session是会生成一个session_id,并且通过cookie来存储传输的,当浏览器中存在cookie的时候,每次请求会在请求头header自动带上cookie,如果在请求头看不到cookie信息,那么就在thinkphp加上,允许cookie header("Access-Control-Request-Headers: Origin, X-Requested-With,cookie,content-Type, Accept, Authorization");原创 2022-04-02 14:46:57 · 6454 阅读 · 0 评论 -
str_replace把<>替换为空
<?php$str = '<img class = "test">';print_r(str_replace(['<','>'],['',''],$str));?>原创 2021-05-28 10:16:15 · 551 阅读 · 0 评论 -
一个例子掌握thinkphp6关联模型
一直都是用join来处理关联数据的,但是总有人说关联模型好,然后就认真去看了下。这是一个一对多的例子,1.先定义一个函数,函数名随便,里面返回关联的模型2.使用$list=Goods::field('id,goods_name')->with(['GoodsSpec'=>function($query){$query->field('spec_id,goods_id,spec_name');}])...原创 2021-04-22 16:24:34 · 1147 阅读 · 0 评论 -
用vscode网页版看github源代码
如果能在浏览器中像 IDE 那样阅读 GitHub 源码,该多好呢?那今天我就来给大家介绍这个骚到天际的骚操作,只需要在GitHub 仓库域名后面加上 1s(1 秒内),比如:https://github1s.com/itwanger/JavaBooks就能在浏览器里面使用 VS Code 环境来阅读这个仓库的源码!步骤1:在github上面搜索要看的源码步骤2:在链接后面加上1s————————————————版权声明:本文为CSDN博主「沉默王二」的原创文章,遵循CC 4转载 2021-04-06 10:46:17 · 974 阅读 · 0 评论 -
thinkphp读写分离
注意事项:1、首先得配置好mysql主从,可以多主多从2、在读写分离的情况下,默认第一个数据库配置是主服务器的配置信息,负责写入数据,如果设置了DB_MASTER_NUM参数,则可以支持多个主服务器写入。其它的都是从数据库的配置信息,负责读取数据,数量不限制。每次连接从服务器并且进行读取操作的时候,系统会随机进行在从服务器中选择3、调用模型的CURD操作的话,系统会自动判断当前执行的方法的读操作还是写操作,如果你用的是原生SQL,那么需要注意系统的默认规则: 写操作必须用模型的execute方法,转载 2021-03-09 16:19:19 · 1145 阅读 · 0 评论 -
serialize和json_encode 区别
(1)serialize主要用于php的序列化,存储到文件或者数据库中,json_encode 也是序列化,但是 主要用于与其他语言比如js进行交互使用,对于传输来说,json有许多优点。(2)在显示上,serialize序列化的字符串包含额外的内容,这是值的类型和长度的编码(3)在进行 json_decode解码的时候需要注意,如果是序列化的数值型数组,那么json_decode 可以还原为原来的数组(数值型数组哦),但是,如果序列化的是关联数组(或者对象),那么由于json_decode无法判断转载 2021-03-09 11:57:14 · 484 阅读 · 0 评论 -
PHP + Memcache 实现多服务器session共享
很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么php默认的files保存session的方式就无能为力了。这时我们可以考虑使用memcache 来接管session的保存与读取工作。第一步:我们需要在服务器上搭建必要的环境,php 、web server的安装不是主题就不多说了,其他还需要的是 memcached 服务端、php_memcache扩展下面安装为centos 下的示例(注:以下安装命令跟服务器配置有关,不能保证通用性,请根据实际.转载 2021-03-04 16:09:30 · 181 阅读 · 1 评论 -
cc攻击是什么?
CC攻击,英文Challenge Collapsar,译为“挑战黑洞”,是一种以服务系统性能薄弱环节为目标的分布式拒绝服务(DDoS)攻击。传统的DDoS攻击一般利用受害者服务器底层网络技术的缺陷发动攻击,攻击者流量消耗比较小。随着技术的进步,已经基本实现有效防御。CC攻击则和传统的DDoS攻击方式不同,它针对的是业务系统应用层的薄弱环节,攻击者需要消耗较多的网络带宽才能发动,但由于根据业务特点发动攻击,目前没有通用的有效的防御手段,所以攻击成功率比较高。服务器业务中的性能薄弱环节,未必是软件实施的缺陷转载 2021-03-03 14:04:42 · 5198 阅读 · 0 评论 -
QueryList列表内容采集
QueryList列表内容采集: public function test(){ $url = 'https://it.ithome.com'; // 元数据采集规则 $rules = [ 'img'=>['.img>img','alt'] ]; // 切片选择器 $range = '.fl li'; $rt = QueryList::get($u.原创 2021-01-14 15:13:19 · 1300 阅读 · 0 评论 -
thinkphp5.1不同模块定义不同分页
场景:admin模块的分页样式需要跟index模块的分页样式不一样,这时候就需要把这两个样式分开。解决方案:在index模块复制一份Bootstrap.php的代码,然后在分页的时候指定该分页类就好了原创 2021-01-11 11:44:01 · 195 阅读 · 0 评论 -
thinkphp3.2 session设置过期时间
thinkphp3.2设置session过期时间不生效,解决方法'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 'expire' => 5, //SESSION过期时间,单位秒 'use_trans_s...原创 2020-12-21 15:54:48 · 2326 阅读 · 0 评论 -
最安全的 PHP 密码加密方法
前言:在 PHP 开发过程中,很多人 PHP 密码加密都是用的 md5 和 sha1(包括 sha256.......),但不知道,随着技术进步和计算机硬件的提升(集群、分布式、云计算),破解者可以快速使用 "暴力"(彩虹表)方式来寻找密码加密后散列码所对应的原始数据。最安全的 PHP 密码加密方法:PHP 官方自带的密码哈希函数password_hash()常用的 MD5、SHA1、SHA256 哈希算法,是面向快速、高效进行哈希处理而设计的。随着技术进步和计算机硬件的提升,如今强大的计算.转载 2020-12-14 16:52:49 · 2143 阅读 · 3 评论 -
消息中间件理解
场景1:由图可以看出,下完订单需要发送短信,发送email等操作,一般代码都是由上到下执行的,当这些额外的服务多起来之后,明显用户下单需要等的时间也就多了,引入消息中间件后,就可以把发短信等服务异步处理,而下单正常进行,大大缩短下单所需要的时间。场景2:下课学生像老师问问题,刚开始只有1,2个学生,老师很愉快的帮他们解决了问题,后来,来问问题的学生多了,排起了长队,为了不影响学生的时间,老师就让班长把问题都记录下来,然后那些学生就可以去做其他事情了,之后老师再一一处理...原创 2020-11-16 10:03:00 · 109 阅读 · 0 评论 -
xss和csrf的通俗理解
csrf是用户访问A网站,并且访问B网站,B网站携带攻击性代码,以用户的身份去访问A网站xss则是在通过在jq加入代码,触发攻击性代码原创 2020-10-10 17:34:06 · 213 阅读 · 0 评论 -
swoole结构解析
1.Master进程主要处理swoole的核心驱动的,该进程中拥有多个Reactor线程。2.在每个Reactor线程当中,都运行着一个epoll实例,swoole所有事件的监听,都在这些线程中实现,如客户端的连接,本地通信用的管道等。3.Manager进程作用是创建和管理Worker和Task进程,只做进程的管理和分配。4.Worker进程是swoole的主逻辑进程,处理来只客户端的请求。5.Task进程是swoole里的异步进程,主要处理耗时较长的同步任务在swoole中,进程与..原创 2020-06-18 14:27:35 · 266 阅读 · 0 评论 -
thinkphp6+workerman的安装和websocket使用
tp6+workerman简单实现通讯首先通过 composer 安装composerrequiretopthink/think-worker注意:tp5.1运行这句的话会报错,因为最新版的think-worker是要tp6框架的,tp5.1要找以前的版本configworker_server.php 更改配置return['worker_class'=>'app\index\controller\Worker',//自定义Workerman服务...转载 2020-06-01 17:12:11 · 9140 阅读 · 4 评论 -
利用composer发布自己的包步骤
1.创建自己的github仓库转存失败重新上传取消点击右上角的 “+”号,选择 “ New repository”,出现下面页面:接下来填写自己的仓库名,开始创建仓库2.本地拉取仓库git clone 项目地址-----------git clone出现Permission denied (publickey)解决办法:https://www.jianshu.com/...原创 2020-04-02 15:32:35 · 890 阅读 · 0 评论 -
thinkphp6 自定义扩展目录
1.自定义的类一般写在extend目录,但是可以自定义一个目录用来写扩展类;这个是自定义的类,要在控制器调用的话还要改composer文件然后在命令行composerupdate一下,就可以调用了...原创 2020-04-01 16:00:34 · 3628 阅读 · 1 评论 -
Thinkphp6整合Ueditor编辑器
UEditor是百度的开源项目,一个用js开发的在线富文本编辑器。下载地址:http://ueditor.baidu.com/website/download.html下载完成后把目录名改为ueditor,放在public目录下使用: <!-- 加载编辑器的容器 --><script id="container" nam...原创 2020-04-01 15:21:18 · 1838 阅读 · 0 评论 -
thinkphp6使用权限验证插件验证权限
thinkphp6的插件扩展:http://sites.thinkphp.cn/1556332我用的是https://github.com/wenhainan/thinkphp6-auth这个权限验证1.按步骤创建数据表,用户表:权限表:角色表:用户所属角色表:2.composer代码下来,composer代码下来后会在config文件多出一个aut...原创 2020-03-31 16:01:13 · 8006 阅读 · 2 评论 -
thinkphp6的容器和服务使用理解
容器的简单使用:1.在extend目录自定义一个类使用容器绑定类并且使用结果:因此可以把容器就是用来把类放进去然后使用app()调用的,服务:1.生成一个服务类2.绑定类到容器3.添加服务4.使用6.结果...原创 2020-03-27 16:07:21 · 6628 阅读 · 4 评论 -
微信小程序保存服务端sessionid的方法
普通的Web开发,都是把sessionid保存在cookie中传递的。不管是java还是php,服务端的会在response的header中加上Set-Cookie浏览器的请求也会在header中加上通过这个sessionid就能使浏览器端和服务端保持会话,使浏览器端保持登录状态但是,微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话,...转载 2020-03-24 17:42:54 · 2380 阅读 · 0 评论 -
Thinkphp5 的sesssion在同一个控制器不同的方法无法获取session的原因和对策
这一段在用thinkPHP5开发微信小程序接口的时候,在同一个控制器一个方法中存入session,在另一个方法中取出session,一直都是无法取出。查阅各种资料得到原因:thinkPHP5里面的session是给浏览器用的,非浏览器的方式是没有办法访问到那个session的,只能用其他方式来代替session。对策:1.(推荐)使用TP5自带的缓存方法可以完美代替session...转载 2020-03-24 17:35:14 · 1270 阅读 · 1 评论 -
微信小程序获取openid返回40029的一种错误情况
我用的是测试号,APPID与填写的不一致参考地址:https://blog.csdn.net/kkkkkjava/article/details/82791819转载 2020-03-23 11:34:57 · 1368 阅读 · 0 评论 -
thinkphp6 多应用模式路由访问
访问方式为 www.xxx.com/api/login,在微信小程序可以封装一下 wx.request,在前面加个/api/,这样就不用每次都加上api了原创 2020-03-23 11:16:45 · 6290 阅读 · 3 评论 -
thinkphp6 事件的理解
事件就是把一些要做的事封装起来,哪里要用就去调用这个事件事件类不用生成也能触发(event);事件监听:事件监听是一个一个生成的,一个事件监听负责一件事事件订阅:事件订阅,一个类里面可以定义多个事件监听例子:定义事件订阅<?phpdeclare (strict_types = 1);namespace app\subscribe;class User...原创 2020-03-19 16:15:39 · 2580 阅读 · 0 评论 -
thinkphp6 用PHPMailer实现邮箱发送功能
下载PHPMailer包 composer require phpmailer/phpmailer 在extend目录创建tool目录,并且新建一个SendMail.php<?phpnamespace tool;use PHPMailer\PHPMailer\PHPMailer;class SendMail{ public function sendMail($to...原创 2020-03-19 15:06:03 · 4848 阅读 · 1 评论 -
webuploader abort报错,后台没有接收到数据
在本地上传图片大于1M没问题,线上的却提示上传失败,请重新上传,打印了下showError方法的code是abort,也就是说上传大小限制了。解决方法:1.nginx:location / { root html; index index.html index.htm; client_max_body_size 200...原创 2020-03-19 14:44:20 · 930 阅读 · 0 评论 -
php in_array()不区分大小写
不区分大小写实现的代码如下,把方法及传递的全转为小写:in_array(strtolower($action),array_map('strtolower',$no_login_action)原创 2020-03-18 09:43:52 · 2667 阅读 · 0 评论 -
小程序为什么有的方法要写在methods,有的可直接写在page里
在页面中触发的函数必须写在method里,其他情况可以写在page里,组件的可以写在page里原创 2020-03-17 17:26:19 · 3429 阅读 · 1 评论 -
thinkphp6 You don't have permission to access /admin/ on this server.
网上很多遇到这个报错的,但是都不是我这种情况,thinkphp6之所以后面加模块名就报错,是因为public目录下面有index和admin目录,我打www.qiye.com/admin或者www.qiye.com/index都会报不允许进入目录...原创 2020-03-09 14:10:59 · 1407 阅读 · 0 评论 -
You don't have permission to access /admin/ on this server.
解决方案https://blog.csdn.net/qq_39188306/article/details/80682445转载 2020-03-09 11:16:26 · 628 阅读 · 0 评论 -
thinkphp 加载图片的根目录
一般index.php在哪里对应的“/”根目录就在那里原创 2020-03-07 00:55:57 · 474 阅读 · 0 评论 -
thikphp6的空模块,空控制器
用tp6的时候遇到了个空模块的问题,空控制器的话文档写的很清楚,就是在每个模块下的控制器里加个Error.php控制器,而空模块写的比较隐蔽,就是要在配置文件app.php里面加上...原创 2020-03-07 00:51:27 · 435 阅读 · 0 评论 -
webupload 上传图片后图片被压缩解决方法
uploader = WebUploader.create({ pick: { id: '#filePicker-2', label: '点击选择图片' }, formData: { uid: 123 ...原创 2020-03-03 10:16:31 · 2364 阅读 · 1 评论 -
thinkphp6 踩坑数组查询不识别
public static function handel($address,$searach,$select){ $arr = explode(',',$address['id']); // $data['province_id'] =$arr[0]; // $data['city_id'] =$arr[1]; // ...原创 2020-02-24 16:04:45 · 1737 阅读 · 0 评论 -
PHP面向对象教程之自定义类
所谓面向对象就是什么时候什么东西做什么,我们设计类的时候需要想的就是怎么做的内容,那么怎么样的一个类才算是符合OOP的思想呢,答案是:这个类写好之后,在使用的过程中,能准确的代表一个事物,在书写的时候代码要和思维描述一致,即这个东西做什么。那怎么开始设计一个合格的类呢,一开始就写class{}的都错了,正确的是什么都不写,而是假设这个类已经存在,这个对象已经存在,各种属性方法都已经有了,...转载 2019-11-14 15:25:40 · 172 阅读 · 0 评论 -
LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
lnmp官网有写https://lnmp.org/faq/ftpserver.html进入lnmp解压后的目录,如cd lnmp1.4 其他版本的话自行更改和确定目录位置,执行:./pureftpd.sh会显示如下图(1.2和1.3及更高版本的安装过程有些差异,1.3及更高版本直接回车安装不需要填写其他信息):也就是执行:./pureftpd.sh 就安装好Pureftpd了,接下来...原创 2019-10-21 17:21:46 · 189 阅读 · 0 评论