
php
爬山虎还上班
这个作者很懒,什么都没留下…
展开
-
nginx+php压测及报错优化
nginx+php压测报错优化原创 2024-11-28 00:30:58 · 898 阅读 · 0 评论 -
GD库实现自动裁剪PNG图片多余透明区域
实现自动裁剪png图片多余透明图片,保留主体原创 2023-12-25 17:06:18 · 1237 阅读 · 0 评论 -
PHPEXCEL解决行数超过65536不显示问题
解决phpexcel超65536行数据不能写入问题原创 2023-10-20 18:05:51 · 1189 阅读 · 0 评论 -
php对接飞书机器人
php接入飞书机器人原创 2023-10-20 10:06:25 · 1713 阅读 · 2 评论 -
websocket请求通过IteratorAggregate实现流式输出
websocket请求讯飞星火认知大模型通过IteratorAggregate实现流式响应原创 2023-09-18 14:33:56 · 941 阅读 · 0 评论 -
小程序实现ChatGPT类流式输出
小程序模拟chatgpt流式输出原创 2023-08-16 19:04:55 · 2199 阅读 · 0 评论 -
MongoDB测试案例
MongoDB requires PHP 7.0 or higher.安装php扩展不在此赘述。1.php原生MongoDB驱动:$manager = new MongoDB\Driver\Manager("mongodb://127.0.0.1", ['username' => 'myuser', 'password' => 'mypass', 'authSource' => 'mydb']);$readPreference = $manager->getReadPr原创 2022-02-24 17:56:19 · 682 阅读 · 0 评论 -
array_pop 报错:Only variables should be passed by reference
代码执行echo array_pop(explode("\\", 'app\admin\controller\test'));报错:在windows环境cmd中执行则正常显示:在linux环境下执行则展示第一条异常,但是如果改用php5.5就正常:大概可以判定这个报错跟php版本有关。...原创 2022-02-07 11:48:56 · 398 阅读 · 0 评论 -
批量打包下载阿里OSS文件
有需求的地方就有方法,批量下载oss文件,上一章说的是从前端的角度实现批量一个个间断性下载,本文章是从后端接口,批量请求阿里oss获取下载文件内容,将获取到的数据打包一次性下载:class TestOss extends BaseController{ //初测 public function test() { $objectName = 'abc/2021/10/30/G20211030060001231.xlsx'; $object = self::$oss->getO原创 2021-11-29 10:07:25 · 3961 阅读 · 0 评论 -
php png转webp
测试php实现png图片转webp:<?php$baseDir = getcwd();$read_from_path = $baseDir . '\img\112.png';$save_to_path = $baseDir . '\img\webps\112.png';// var_dump(function_exists('imagewebp'));$img = imagecreatefrompng($read_from_path);imagepalettetotruecolor原创 2021-08-04 15:09:12 · 544 阅读 · 0 评论 -
微信上传图片素材接口
微信官方文档,这个接口的media解释着实让人有点摸不着头脑(其实没啥用,这是解释文件信息里包含什么,不需要专门处理)搜索资料,写测试代码不断尝试,主要实现方式两种:1.方式一是直接用curl,主要是用来测试接口参数怎么设置,能否调通微信接口:$pathName = realpath('./111.png'); $url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESSTOKE原创 2021-07-27 11:56:14 · 984 阅读 · 0 评论 -
laravel-admin 表单提交,使用required验证时对于传值为0报错问题
最近使用laravel-admin写一个项目,第一次接触踩坑是避免不了的,刚好遇到一个表单提交时,数据值传0,验证规则为required,但是提示失败的问题。这使得很多表单提交的应用场景不能很好的适用。于是决定剖析laravel-admin源码,最开始以为是验证的时候过滤掉的,结果调试了半天也不对,经过一番折腾后终于找到位置了,是laravel-admin的表单数据赋值给Validator对象前做了过滤处理,在encore\laravel-admin\src\Form\Field.php原创 2021-05-25 15:53:48 · 1245 阅读 · 0 评论 -
mysql事务不自动提交注意事项
使用公司框架写了个php脚本,执行一些数据插入更新等,代码中用到了mysql事务,但是很奇怪的是我每次循环执行最后一条数据更新不会生效,而这条sql执行是在事务之外的,而事务却都执行成功了,数据也都返回成功,如果把事务关闭了,最后一句sql也会执行成功。分析问题应该是mysql事务相关的问题,最开始以为是我自己写的代码问题,但是检查,测试了半天也没发现,于是考虑是否是mysql环境设置问题,对比,修改事务级别等也没有解决。最后怀疑是原有框架的mysql驱动有问题。于是复制原有驱动(mysqli)的代码,重新原创 2020-08-04 17:43:05 · 1697 阅读 · 0 评论 -
Homestead环境搭建
按照laravel社区文档步骤,安装VirtualBox,安装Vagrant,下载Homestead并导入Homestead Box,安装git,下载Homestead管理脚本(git clonehttps://git.coding.net/summerblue/homestead.git Homestead)并进行初始化(bash init.sh),Homestead.yaml配置文件里可以修改ip,站点服务,数据库,ssh秘钥登录,共享文件配置等,具体查阅文档。配置好Homestead.yaml文.原创 2020-06-27 22:24:37 · 504 阅读 · 0 评论 -
PHP isset()方法忽略参数值为NULL时导致的数据错误处理问题
一次编写脚本导出数据库数据过程中,发现数据不太对,就排查原因,发现逻辑判断中使用了isset()方法,但是由于从数据库中查询到的数据中存在NULL值,导致错误。例如:$a = array('name' => NULL);var_dump(isset($a['name'])); // false这就导致部分数据可能会被跳过或错误处理。解决的办法有很多,例如值提前字符串处理下,或者额外添加条件或者数据库字段设置默认值不允许为NULL等,这里就不再赘述。...原创 2020-06-24 15:24:39 · 954 阅读 · 0 评论 -
Call to undefined function think\captcha\imagettftext()
php安装gd库以后,在生成验证码图片的时候报错Call to undefined function think\captcha\imagettftext(),查阅资料(参考资料:http://www.shangzh.com/1094.html)可能是因为gd库缺失freetype支持,然后查找下载资源:https://download.savannah.gnu.org/relea...原创 2019-11-14 10:36:00 · 7087 阅读 · 0 评论 -
http和https网页切换导致cookie失效问题
网站先后从https和http方式登陆网站,会导致http中cookie无法生效,即https覆盖和http但作用域只在https中,在http中浏览器debug中查看不到相关cookie。之前遇到这个问题,网站登录和跳转出现问题,如果不仔细观察和思考很不容易发现以为是程序bug。其实也可以从web服务器配置入手杜绝,比如nginx配置http到https重定向。...原创 2019-06-26 10:58:18 · 5590 阅读 · 0 评论 -
关于PHP中print_r()赋值溢出现象的解决方法
根据print_r()方法的第二个参数表述,设置为true时返回字符串表示:,但是当这个要打印的字符串过大时,会导致,赋值失败而内容也会被打印出来,即第二个参数设置为true会失效。test.php的内容如下:其中$file是一个有50多M的.txt文件(文件较小时不会出现问题)。官方文档中还写到:print_r()函数使用第二个参数时,使用的是输出缓冲,于是我又 ...原创 2019-03-22 10:55:06 · 905 阅读 · 0 评论 -
字符串负偏移量问题
字符串可以当数组使用数字下标调用,这个大家可能都知道,但是下标还可以是为负数我是最近才知道,所以测试下了,发现不只是简单可以调用还有一个兼容性问题,我安装了两个版本的php,一个php5.6一个php7.2,发现只有php7.2支持负值下标,而php5.6则会报错。代码如下:php7.2执行结果为‘l’,而php5.6执行结果为:得出结论字符串负数下标不是任何版本php都兼容的...原创 2018-12-06 15:57:37 · 1730 阅读 · 0 评论 -
TP中db()函数引起的SQLSTATE[08004] [1040] Too many connections.
使用tp5框架编写了个think自定义指令,出于方便在代码中使用了db()执行数据库操作:<?php//省略内容....foreach($profit_records as $records){ $info = db('pocket')->field('sn, pocket') ->where('addr', $records['addr'])...原创 2018-11-22 11:49:46 · 3575 阅读 · 0 评论