技术饭 PHP中的proc_open函数

proc_open函数是PHP中一个非常强大的函数, 执行一个命令,并且打开用来输入/输出的文件指针,它允许您在PHP脚本中执行外部命令。这可以用于各种目的,如:调用系统命令和工具、与其他应用程序进行交互、处理文件和数据、执行复杂的自动化任务,proc_open() 提供了更加强大的控制程序执行的能力

阅读全文 » 284天前
2024年04月09日

技术饭 php通过spatie/browsershot将html文件转成pdf、图片

php通过 spatie/browsershot 将html文件转成pdf、图片,最近需要将html文件转成png或者是pdf合同,如果使用php手动处理的话那过程就需要经过,html -> pdf -> png,这样单独写的话就比较麻烦,如果有composer或者类库的话那就很好用了,搜了一下 spatie/browsershot 比较好用些,只是需要依赖npm、puppeteer。

阅读全文 » 561天前
2023年07月07日

技术饭 php生成pdf文件上传到七牛云

php生成pdf文件上传到七牛云,php生成pdf使用composer require tecnickcom/tcpdf,通过html生成对应的pdf使用还是很方便的,缺点是html样式不是很好调整,七牛云上传使用七牛云提供的类库 composer require qiniu/php-sdk即可。php下有多个类库可以生成pdf如tcpdf、mpdf,但是html需要比较写得纯粹些,否则很多样式不支持,导致生成得pdf很乱。

阅读全文 » 575天前
2023年06月23日

技术饭 PHP的MongoDB\Driver\Manager实现对mongodb的操作

MongoDB是开发人员数据平台,提供必要的服务和工具,以快速、高性能和大规模地构建用户需求的分布式应用程序。MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

阅读全文 » 597天前
2023年06月01日

技术饭 PHP搜索引擎MeiliSearch实现全文检索

PHP搜索引擎MeiliSearch实现全文检索,Meilisearch 搜索引擎使用 Rust 语言开发,轻量,对中文搜索非常友好,几乎做到了零配置,零学习成本,部署即用,非常方便。建立在 LMDB 键值存储之上,安装在 Ubuntu 或 MacOS 上时,它以 35 MB 的二进制文件形式存在。 MeiliSearch 带有内置的客户端、服务器和 WebUI。 词干提取、停用词、同义词、排名、过滤器和分面等功能都是开箱即用的,使用合理的默认值并且可以轻松定制。

阅读全文 » 597天前
2023年06月01日

技术饭 PHP 导入导出csv文件函数:fgetcsv()、fputcsv()

PHP 导入导出csv文件函数:fgetcsv()、fputcsv(),数据导出格式正常是execl的.xsl、.xslx格式,但导出这两种格式的文件体积很大,还很占用内存,所以一般推荐导出csv格式,csv能处理的数据量比较大,文件还小,是导出数据文件格式的首选。excel导出csv,通过txt打开保存为utf-8。

阅读全文 » 599天前
2023年05月30日

技术饭 WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: [connection refused calling hello on 'localhost:27017']

WSL2使用PHP访问Windows 11上的MongoDB报错:Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling hello on 'localhost:27017'],解决方法是:1、防火墙需要运行wsl2、2、mongodb配置文件设置bindIp=0.0.0.0、3、设置wsl中对应host访问

阅读全文 » 601天前
2023年05月28日

生活札记 pytest框架、Appium之自动化测试(三)

pytest 可以用来做系统测试的自动化,它的特点有:用Python编写测试用例,简便易用、可以用文件系统目录层次对应手工测试用例层次结构、灵活的初始化清除机制、可以灵活挑选测试用例执行、利用第三方插件,可以生成不错的报表。Appium 是一个移动 App (手机应用)自动化工具。Appium 自动化方案的特点:开源免费、支持多个平台iOS (苹果)、安卓 App 的自动化都支持、支持多种类型的自动化、支持苹果安卓应用原生界面的 自动化、支持应用内嵌WebView的自动化、支持手机浏览器中的web网站自动化、支持flutter应用的自动化、支持多种编程语言、像 Selenium一样,可以用多种编程语言调用它开发自动化程序。

阅读全文 » 663天前
2023年03月26日

技术饭 VS Code出现“由于找不到ffmpeg.dll,无法继续执行代码”的系统错误

点击桌面vs code快捷方式出现如图错误。打开Microsoft VS Code 文件夹,VS Code出现“由于找不到ffmpeg.dll,无法继续执行代码”的系统错误,发现一部分文件被打包进了一个叫“_”的文件夹(真奇怪啊),把该文件夹里的全部文件取出至Microsoft VS Code文件夹。可以正常打开Vs Code。

阅读全文 » 827天前
2022年10月14日

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

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

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

技术饭 php函数getimagesize()函数获取腾讯云对象存储图片信息太慢解决办法

php函数getimagesize()函数获取腾讯云对象存储图片信息太慢,导致接口返回超过了5s,这个体验太不好了,按照正常逻辑:想获取图片信息,当然是用getimagesize()函数,对于getimagesize()函数而言本地服务器的文件读取相对是比较快的,但是远程的图片就太慢了,必须先现在到本地服务器,然后再获取,如果有的图片很大,那这个下载速度可想而知的慢。

阅读全文 » 1158天前
2021年11月17日

技术饭 vscode1.60版本不支持:terminal.integrated.shell.windows

vscode1.60版本不支持:terminal.integrated.shell.windows,旧版VScode 的 git bash 终端配置如下:"terminal.integrated.shell.windows": "D:\\Program Files\\Git\\bin\\bash.exe",当VSCode升级至1.57.1(2021.6.17)时,会出现警告提示:此项已弃用,配置默认 shell 的新推荐方法是在 #terminal.integrated.profiles.windows# 中创建一个终端配置文件,并将其配置文件名称设置为 #terminal.integrated.defaultProfile.windows# 中的默认值。此操作当前将优先于新的配置文件设置,但将来会发生更改。

阅读全文 » 1231天前
2021年09月04日

技术饭 腾讯cos、阿里云oss存储文件跨域

腾讯cos、阿里云oss存储文件跨域,现在采用的文件存储方式基本上是阿里云oss、腾讯cos等一系列的存储来做文件存放,如果是新手肯定会碰到各种设置的问题,正常是在存储桶那边设置跨域访问CORS设置来源Origin,但是有时候并不生效,原因是存储如果管理了cdn需要在cdn那边也设置相应的响应头才行。

阅读全文 » 1254天前
2021年08月13日

技术饭 main(): Failed opening required '/manyidea/Config.php' (include_path='.:/usr/share/pear:/usr/share/php')

main(): Failed opening required '/manyidea/Config.php' (include_path='.:/usr/share/pear:/usr/share/php'),php文件上传时发生错误,提示打不开文件,搞了半天也没一个头绪,改了php.ini的配置也无济于事,后来才发现是centos系统的文件夹目录都是drw-xr-x,并不是755或者777,正常情况应该是drwxr-xr-x才能访问得到。

阅读全文 » 1267天前
2021年07月30日

技术饭 更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题

更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题,这几天在做公众号授权,每次写入用户昵称数据的时候一直报错,我就奇怪了,明明数据库、字符集都改成了utf8mb4,为什么还是写入不了数据呢,查看了测试机(mysql5.7.24)的my.cnf 文件没有配置设置编码却没有问题,而正式机(mysql5.7.32)做了字符集编码的配置却出现了异常,真实奇葩~~~

阅读全文 » 1484天前
2020年12月26日

技术饭 ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored

ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored,今天打开阿里云centos的控制面板出现了这种情况,有点懵逼,就重启了下服务器,就一直报这种错误,然后定时任务还被设置成了0,定时任务改回来,15分钟左右又被篡改成了0,估摸着应该是被植入了病毒,想想这台服务器之前因为Redis没有设置密码就已经出现过定时任务文件被篡改的情况,当时还没在意。

阅读全文 » 1488天前
2020年12月22日

技术饭 Nginx的启动、停止与重启

Nginx的启动、停止与重启启动,启动代码格式:nginx安装目录地址 -c nginx配置文件地址,例如:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

阅读全文 » 1523天前
2020年11月17日

技术饭 阿里云oss上传文件设成了跨域头之后还是显示跨域问题

阿里云oss上传文件设成了跨域头之后还是显示跨域问题,今天碰到奇怪的问题是OSS文件上传只有,需要下载文件的时候,有些文件可以下载有些文件不能下载,奇怪了都是同样的上传接口为什么就跨域了,可是oss也已经设置了JavaScript跨域全部允许了,可还是有些文件跨域。

阅读全文 » 1523天前
2020年11月17日

技术饭 阿里云OSS文件的上传与下载

这几天弄了下新项目的负载均衡之后,文件为了统一管理,就同时也采用了阿里云的OSS作为文件存储方式,文件统一的管理解决了负载均衡文件生成在服务器上找不到文件的尴尬,当然了,也可以自己做一台专门的服务器来存储文件,但是毕竟阿里云相对成熟,还稳定,所以有钱还是用第三方存储能解决大部分的问题。

阅读全文 » 1524天前
2020年11月15日

技术饭 PHP mkdir函数创建目录失败

PHP 编程中,经常会遇到文件的上传,文件夹的创建等等。其中会用到一个非常重要的函数:mkdir;它的作用是创建一个目录,用来存放上传文件的文件夹。在上传过程中如果涉及多级目录的创建,经常会遇到错误,怎么如何处理呢??

阅读全文 » 1527天前
2020年11月13日

技术饭 centos8重新安装MySQL,从高版本降到低版本后疯狂报错

centos8重新安装MySQL,从高版本降到低版本后疯狂报错。原来服务器centos8是默认yum install mysql的,mysql的版本是8.0.21,但是原始项目的数据库过度过去之后,数据库报错了,说是8.0.17版本之后int、tinyint类的字段长度被废弃不再显示了:mysql8.0 tinyint字段长度修改时无效,所以就想把mysql版本降到5.7.32版本,本来是先yum remove mysql,因为没有删除遗留的mysql文件、目录导致了安装5.7.32版本一直报错。

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

技术饭 PHP7.2 redis扩展的安装

PHP7.2 redis扩展的安装,一.下载php-redis包,解压:wget http://pecl.php.net/get/redis-4.0.2.tgz;tar -xzvf redis-4.0.2.tgzcd redis-4.0.2;二.通过phpize生成编译configure配置文件,编译&&安装;没有配置环境变量的话,必须使用 绝对地址 ,例子:/usr/php/phpize;phpize;指定php配置文件的位置;./configure --with-php-config=/usr/bin/php-config

阅读全文 » 1530天前
2020年11月10日

技术饭 nginx 访问 .php文件变成下载

Nginx 浏览.php文件变成下载:这是因为nginx没有设置好碰到php文件时,要传递到后方的php解释器。看看你的nginx.conf配置,里面有没有这样的设置:location ~ .*\.php$ { fastcgi_pass 127.0.0.1:9000;}

阅读全文 » 1530天前
2020年11月09日

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

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

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

技术饭 /var/mail/root 定时任务crontab生成日志文件太大的处理方案,You have new mail in /var/spool/mail/root

之前讲过聊过 file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space,磁盘空间不足这个问题,解决方法是删除 /var/mail/ 下的root日志日志文件,可是过不了多久又满了,所以只能从源头去禁止生成定时任务生成的日志才能彻底的解决问题。有时候处理的时候还会出现:You have new mail in /var/spool/mail/root的报错。

阅读全文 » 1562天前
2020年10月09日

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

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

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

技术饭 file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space,磁盘空间不足

访问网站系统报错:file_put_contents(): Only 0 of 23634 bytes written, possibly out of free disk space。意思就是磁盘空间不足,df -lh 查了一下,确实是发现磁盘满了,想想应该是日志文件太大了,所以删除项目的runtime下的文件释放空间就可以了。

阅读全文 » 1582天前
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中的参数就失效了,无论设置成什么都会失效。

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

技术饭 PHP SDK上传文件到阿里云oss文件存储Bucket

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。最近业务需求做了PHP SDK上传文件到阿里云oss文件存储Bucket的相关工作。

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

技术饭 首先要知道export,import ,export default是什么

ES6模块主要有两个功能:export和import:1、export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口;2、import用于在一个模块中加载另一个含有export接口的模块也就是说使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。这几个都是ES6的语法。

阅读全文 » 1718天前
2020年05月06日

吃瓜群众 百度网盘“破解版”,Pandownload 开发者被抓

今天下午,据扬州网警巡查执法 官方微博通报(原微博已删除),宝应网安破获一起黑客攻击计算机系统案件。今年2月,受害人刘某报案称其下载的“Pandownload”会在未授权的情况下,将百度网盘数据共享出去,致隐私照片和文件泄露。江苏省扬州宝应县局网安民警立即开展案情分析研判。

阅读全文 » 1738天前
2020年04月16日

技术饭 Nginx设置alias的二级目录之后,首页访问正常,但是js、css、图片等静态文件出现404

Nginx设置alias的二级目录之后,首页访问正常,但是js、css、图片等静态文件出现404,之前配置了一个域名为pc访问域名,域名加个目录是访问后台,类似:a.com 是首页,a.com/admin 是后台,而且两个目录在同一个层级,但是alias配置之后一直找不到静态文件。

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

技术饭 安装在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吧,希望尽快修复。

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

技术饭 PHP ZipArchive 类库压缩、解压Zip文件

PHP ZipArchive 类库压缩、解压Zip文件,PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法请自行百度。

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

吃瓜群众 关于人人聚财工作动态披露及出借人问题回复(2月27日)

根据监管部门指示要求,平台已于2020年1月份前正式暂停新用户注册、暂停个人用户资金充值、暂停新标发布(包括普通续期及优转服务等)、暂停新增贷款等服务。接下来,聚财将按照《深圳市网络借贷信息中介机构良性退出指引》要求展开平台退出相关工作。《深圳市网络借贷信息中介机构良性退出指引》为深圳当地网贷平台处置工作的政策依据,于2019年3月27日由深圳市互联网金融协会发布,协会并于2020年1月13日发布关于《指引》有关问题的说明,详细政策文件材料可在深圳市互联网金融协会网站或公众号查看。

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

技术饭 413错误,Allowed memory size of 100663296 bytes exhausted (tried to allocate 84494727 bytes),php.ini重启不生效

文件上传出现413错误,解决完413后报Allowed memory size of 100663296 bytes exhausted (tried to allocate 84494727 bytes)错误,修改php.ini之后重启php-fpm,php.ini配置还是原样不生效不生效

阅读全文 » 1925天前
2019年10月12日

技术饭 exif_read_data()解决上传图片旋转、图片反向问题,getimagesize获取图片高度宽度相反的问题

exif_read_data()解决上传图片旋转、图片反向问题,getimagesize获取图片高度宽度相反的问题,手机图片上传之后出现了反向问题,操作系统里的文件属性功能可能已经把图片给修正过了,那这时候就要把图片给旋转回来就需要用到php的exif_read_data方法。

阅读全文 » 2063天前
2019年05月27日

技术饭 解决微信video、audio 无法自动播放的问题

IOS Safari 中,无法自动播放音频、视频文件。所以,移动页面我不建议产品设计自动播放的交互,即便在PC上,新版的chrome自动播放也被禁止了(chrome会根据用户行为来确定是否可触发自动播放)。

阅读全文 » 2136天前
2019年03月15日

技术饭 ThinkPHP3.2框架中添加(add)或更新(save)时过滤某些字段的问题

ThinkPHP3.2框架中添加(add)或更新(save)时过滤某些字段的问题,在已经建好的数据表结构中新增或修改字段后,在TP框架中执行增加、修改操作时出现过滤掉该字段,而打印的插入或更新数据会显示该字段,打印执行的sql语句不会出现该字段,这时把TP框架中的runtime文件夹删掉即可,原因是runtime文件夹中有数据库的缓存会自动过滤掉该字段

阅读全文 » 2138天前
2019年03月13日

技术饭 JS在可编辑DIV (contenteditable="true")中的光标位置插入内容或表情

近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下。写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定。

阅读全文 » 2211天前
2018年12月30日