技术饭 thinkphp5.1日志文件夹及文件权限问题

thinkphp5.1日志文件夹及文件权限问题,由于www用户和root用户(比如cmd的cli进程日志)都有可能对log文件夹或文件进行创建和读写。如果是先由www用户创建的log文件夹活文件,则不会出任何问题。但是如果是先由root用户创建的文件,然后再由www用户角色去读写就会出现异常报错。因为一般默认创建的log文件的权限是 -rw-r--r-,也就是www没有权限去写入root用户创建的log文件。

阅读全文 » 701天前
2022年06月01日

技术饭 PHP7新特性

PHP7已经更新很久了,但是实际上很多人用的还是php5.6,最近也刚刚开始使用php7,发现还是有很多的新特性,事实上现在已经更新到php8了,php7性能方面比以往的版本好很多,php7新增了一些特性也丢弃掉了一些用法。

阅读全文 » 829天前
2022年01月24日

技术饭 thinkphp5将json对象转数组

thinkphp5将json对象转数组,tp5获取得到的数据是json格式,但是无法通过数据的方式直接获取,以前是有默认转换,现在只能通过 getContent() 方法来获取内部的数据了。

阅读全文 » 1125天前
2021年04月02日

技术饭 TP5使用unlink删除文件报错:Resource temporarily unavailable

TP5使用unlink删除文件报错:Resource temporarily unavailable,今天在TP5内使用unlink删除上传图片的时候报错了。情况是 $info = $file->move();获得 $info 变量后 $info->getRealPath() 通过该方法获取上传文件真实路径,然后直接unlink时报错 Resource temporarily unavailable

阅读全文 » 1281天前
2020年10月28日

技术饭 PHP创建PDF文档,相应的PHP类库有:TCPDF、mPDF、Dompdf等

PHP创建PDF文档,相应的PHP类库有:TCPDF、mPDF、Dompdf等,如果要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天介绍一款PDF库:TCPDF,TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进,增强了实用功能。

阅读全文 » 1310天前
2020年09月29日

技术饭 vue.js前端获取thinkphp5.1后端api接口的验证码,验证码一直验证失败

最近需要做验证码接口,前端使用的vue.js接收,遇到如下问题:thinkphp5.1框架默认生成的验证码是session方式给到前端用户,验证码图片生成没有问题,出现问题是在验证验证码的步骤:每次验证都是显示验证码错误。测试了才知道api接口模式,访问不同接口的生成才session_id是不一样的,所以导致生成验证码与确认验证码的接口两个session_id不一致,那么解决问题的方式就是设置同一个session_id就可以了。

阅读全文 » 1320天前
2020年09月19日

技术饭 POST参数超过1000后,$_POST中1000以后的参数丢失,但是php5.6 max_input_vars 修改无反应?

之前做了图片文件上传到阿里云oss存储中,阿里本身的传输没有问题,但是在当保存到自己数据库的时候就报错了,第一次报错是id不存在,本来数据表就是一条记录,更新的主键ID竟然不存在,查了下js传过过来的formdata参数正常,但是$_POST就只仅仅取到了一部分数据,剩余的数据丢失了,想想应该是php限制的问题,最终确定是参数: max_input_vars 默认限制了1000,本来是改成了5000,但是测了还是没效果,查了phpinfo()发现:php-fpm重启之后 max_input_vars 的值并没有改变,多方查证发现服务器的php配置原来是外包公司配置的,外包公司把配置文件改到了 php-fpm.conf 文件里面,所以原始的php.ini中的参数就失效了,无论设置成什么都会失效。

阅读全文 » 1325天前
2020年09月14日

技术饭 安装在thinkPHP5.1下报错了:Cannot use Workerman\Worker as Worker because the name is already in use

在做定时任务,执行php命令:php think AutoDelOrder 的时候处理下了:Cannot use Workerman\Worker as Worker because the name is already in use,查看文件位置,看到的是 Workerman\Worker 名字已经被使用了,所以需要改成其他名称,这个算官方的一个BUG吧,希望尽快修复。

阅读全文 » 1497天前
2020年03月26日

技术饭 php实现文字换行以及thinphp5.1水印自定义位置

最近要做图片生成图片水印与文字水印,但是遇到了一些小问题,tp5.1的图片类库只提供了9个位置,那图片水印如何自定义位置?文字水印,字数过多,水印超出了图片如何解决?

阅读全文 » 1504天前
2020年03月19日

技术饭 thinkphp5.1控制器中的初始化方法initialize()不能return出数据

本来是要做登录验证与权限验证,正常是想在每个控制器的头部初始化方法initialize()直接return出数据,但是试了很多遍thinkphp5.1控制器中的初始化方法initialize()不能return出数据,翻了文档确实也是说不能输出,建议使用中间件的方式返回数据即可。

阅读全文 » 1513天前
2020年03月11日

技术饭 AikehouA 5.2.0版本,最新版安装出现 HTTP ERROR 500 错误解决方案

今天在使用最新版AikehouA 5.2.0版本时,出现 HTTP ERROR 500 错误,调试了许久,查了nginx的错误日志等,断调试代码,一直没有找到确切的原因,后来在本地php7.0环境、自己服务器php7.0环境测试,安装没有任何问题,故此判断是因为最新版本composer加载了必须支持php7.0的插件,php5.6.x的环境不支持php7.0的一些方法,所以这里就需要删除一些composer包,更新vendor目录即可解决问题。

阅读全文 » 1517天前
2020年03月06日

技术饭 thinkphp5.1的json数据写入、查询

正常一篇文章属于一个分类,所以是单选,现在需要将一篇文章对应多个分类,这时候就需要将分类的单选改成了多选,那做法就有两种,1、将文章表的catid字段改成json格式,如:{"value":"5","value":"6"},2、删除文章表的catid字段,新建一个关联catid的表。

阅读全文 » 1520天前
2020年03月03日

技术饭 PhpSpreadsheet 导出图片到 Excel

之前使用的是PHPExcel来做PHP程序的数据导出,但是ThinkPHP5版本就改成了PhpSpreadsheet,文档因为是英文的所以看不太懂,今天解决的是PhpSpreadsheet 导出图片到 Excel。

阅读全文 » 1687天前
2019年09月19日

技术饭 thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE

thinkphp5.1.27使用PhpSpreadsheet下载表格 php://output 报错ERR_INVALID_RESPONSE,有些服务器可以正常,网上的解释都是说确认php_zip,php_gd2,php_xml是否开启,经过测试都开启了却还是不行,最终看了先thinkphp5的输出方式是return,所以在 php://output 前面加个return输出即可。

阅读全文 » 1687天前
2019年09月18日

技术饭 爱客猴内容管理系统(AikehouAdmin5.2.0)正式上线

爱客猴内容管理系统(AikehouAdmin5.2.0)正式上线,爱客猴内容管理系统(AikehouAdmin5.2.0),基于国内流行的 ThinkPHP5.1 框架研发,UI插件采用简洁、直观、强悍的 AdminLTE3 前端开发框架以及国内口碑极佳的 Layui2.5.3,全新的设计理念,带来更舒爽的体验。

阅读全文 » 1792天前
2019年06月06日

技术饭 thinkphp5.1图片处理类think-image的png图片透明度以及水印透明

thinkphp5.1图片处理类think-image的png图片透明度以及水印透明,每次更新都要修改图片类,不理解ThinkPHP官方为什么不更细解决这个问题,难道这不是个问题!

阅读全文 » 1810天前
2019年05月18日

技术饭 thinkphp5.1下ajax跨域请求接口,session公用的解决方法

thinkphp5.1下ajax跨域请求接口,session公用的解决方法,ajax或者app(IOS、安卓)请求接口,php中如果需要登录,则需要设置session,但每一次请求都会重新生成一个session_id,所以session就没法获取跟传递,解决的办法就是生成一个随机数做为session_id,保存这个随机数,每次请求都带上这个随机数,这样每次获取的session就一致了

阅读全文 » 1954天前
2018年12月25日

技术饭 tp5中url使用js变量传参方法

tp5中url方法使用的都是{}这个字符来解析,layui使用的是{{}}来解析,这就造成了无法把js变量传参到tp5的url()方法中,那只能去做替换,或者改成?好的形式了。

阅读全文 » 1993天前
2018年11月17日

技术饭 thinkphp5分页抓取数据并入库

PHP可以通过curl抓取其他网站接口数据,抓取到的数据量有时候很多,这个时候如果进行入库的话会造成执行时间过长而停止报错500,解决方案有:1、php配置值max_execution_time修改大一些,还有就是nginx的执行时间也可以修改大一些,但这回造成网页一直卡着也很消耗服务器内存;2、进行分页抓取。

阅读全文 » 2032天前
2018年10月09日

技术饭 PHP7.2安装之后图片验证码验证失败,php.ini文件设置session.save_path失败的解决办法

PHP7.2安装之后图片验证码验证失败,php.ini文件设置session.save_path失败的解决办法,php5.3.3以前php-fpm还没有被php收录,配置php基本都在php.ini里面,php5.3.3及以后,除了在php.ini配置以外,还可以在php-fpm.conf里面配置。

阅读全文 » 2055天前
2018年09月15日

技术饭 wnmp下thinkphp5下解决不支持pathinfo模式解决方案

wnmp下thinkphp5下解决不支持pathinfo模式解决方案,这几天开发环境换成了最新版本的wnmp,导致了运行tp5时,pathinfo模式一直报错。报错的原因是开启pathinfo模式时index.php入口文件被解析成了一个参数,再三寻研究了好几遍最后才找到了答案。

阅读全文 » 2242天前
2018年03月12日

技术饭 微信支付异步notify_url中$_GET、$_POST无法获取到数据解决方案

微信支付异步notify_url中$_GET、$_POST无法获取到数据解决方案,php5.3以及之前版本$GLOBALS['HTTP_RAW_POST_DATA'] 可以使用,但是在PHP5.3以后已废弃,也就是说$_GET、$_POST取不到数据

阅读全文 » 2250天前
2018年03月05日

技术饭 nginx下运行php的程序时返回200访问却是空白页问题的解决方法

这几天一直在研究小程序,开发的差不多的时候吧环境从php5切换到了php7之后发现了很多的问题,比如传入参数没有默认值等造成的问题,但另一个棘手的问题就是:nginx下运行php的程序时返回200访问却是空白页,接口请求成功但是却一直无法返回数据,经过不断反复测试,代码断点测试,最后才发现了问题所在。

阅读全文 » 2250天前
2018年03月05日

技术饭 简单配置nginx使之支持pathinfo,解决tp5一直跳转回首页

最近是遇到thinkphp5.0.8在nginx环境下不支持pathinfo只支持普通的兼容模式,输入正常的url地址就一直返回首页,测试之后发现是nginx没有配置好pathinfo模式,并且设置了rewrite,通过分析只需要修改3个地方就可以了,亲测成功,看代码有注解。

阅读全文 » 2355天前
2017年11月20日

技术饭 从php5升级到php7之后,session不能传递的解决方案

从php5升级到php7之后,session不能传递的解决方案,刚刚把php升级到了php7.1.7,发现网站后台不能登录,一直提示验证码错误,可是明明GD库开启了,验证码也是显示的,经过测试发现是session为空了,折腾了大半天才知道php7的session默认设置是不传递的,有点坑啊。

阅读全文 » 2453天前
2017年08月13日

技术饭 爱客猴内容管理系统核心框架ThinkPHP3.2.3升级到5.0的计划

爱客猴内容管理系统核心框架ThinkPHP3.2.3升级到5.0的计划,2016年8月多开始,thinkphp官方就推出了5.0的一个重大升级版本,但那时候的版本都是出于RC阶段,个人认为刚刚出来的版本一般是bug会比较多,还不够成熟,所以那个时候并没有考虑将爱客猴内容管理系统的核心框架升级到tp5.0。

阅读全文 » 2617天前
2017年03月03日