
php
不如喫茶去
Life is a journey, not a destination
展开
-
PHP使用RabbitMQ(正常连接与开启SSL验证后的连接)
代码中包含了PHP在一般情况下使用方法和RabbitMQ开启了SSL验证后的使用方法原创 2024-12-04 15:53:29 · 651 阅读 · 0 评论 -
PHP获取安卓APK文件的信息(名称、版本、图标文件等)
最近业务需要一个功能,后台上传apk文件,需要自动获取到此apk的名称、版本、图标、PackageName等信息。网上查了很多资料,看大家都是使用aapt工具来获取信息,不过不能获取图标。后来发现有大神已经封装了一套组件【php-apk-parser】可以使用,在此总结一下,方便大家使用。原创 2024-11-28 15:20:17 · 993 阅读 · 0 评论 -
使用PHP操作MinIO
记录下使用PHP对MinIO存储桶下的文件及文件夹的操作原创 2023-04-04 18:00:19 · 2623 阅读 · 1 评论 -
PHP 使用exec等命令时报错的注意点
PHP exec $PATHPHP使用exec执行脚本异常原创 2023-02-03 16:53:13 · 667 阅读 · 0 评论 -
PHP实现文件夹压缩、解压及zip文件在服务器之间的传输
PHP实现文件夹压缩、解压。PHP实现文件或文件夹在服务器之间的传输。原创 2023-01-31 13:37:02 · 1602 阅读 · 0 评论 -
PHP操作XML(新增、编辑、删除)
本文来总结下使用PHP对xml 文件的内容进行操作,还有生成新的xml文件的方法。原创 2022-11-25 11:51:23 · 1244 阅读 · 0 评论 -
RabbitMQ的简单理解及PHP使用RabbitMQ(附yii2使用方法)
RabbitMQ的简单理解及PHP使用RabbitMQ(附yii2使用方法)原创 2022-03-10 21:43:54 · 2849 阅读 · 0 评论 -
windows环境PHP使用RabbitMq安装amqp扩展
windows环境PHP使用RabbitMq安装amqp扩展原创 2022-03-10 21:41:41 · 2121 阅读 · 0 评论 -
PHP图片旋转验证实现思路
实现思路:PHP从图片库中随机取出一张,使用gd库裁剪并随机旋转0-360°【A】,记下旋转度数。把图片输出给前端。用户将图片旋转至正确的位置(只能朝着一侧旋转,且最大旋转值为360°),前端记下用户旋转的角度【B】传给后端。验证思路:A = 360 - B 即正常(可以加左右模糊值)。否则验证失败。代码如下:<?phpnamespace controllers\auth;use Gd\Imagine;use File;use Image;class Imag.原创 2021-09-18 18:55:47 · 545 阅读 · 0 评论 -
PHP实现两种排课
两种排课方式:固定每周的固定时间上课(例:共上20节,每周六、周日早上8点-10点上课。假如今天周六凌晨1点,那么排课也需要从今天开始) 总共上几个周,每周上课时间比较个性化(例:共上三周,第一周周一周二早上8点-10点上课;第二周周三周四下午8点-10点上课;第三周周日中午11点-12点上课。)第一种排课比较好实现,简要代码如下:/** * 生成日期列表 * * @param int $startDate 开始日期 时间戳格式 * @param.原创 2021-06-25 18:07:15 · 795 阅读 · 9 评论 -
PHP匹配并替换自定义文本中的变量
阿里的短信模板中的变量配置在PHP中怎么实现?经常会有这样的需求:在页面上配置一段文字,文字中夹杂着前后端定义好的变量,然后根据不同的用户显示不同的文本内容。比如:我们需要在前端页面上配置一个消息内容,内容中有用户的姓名、性别、年龄、手机号...等信息,这个消息内容是可以随时编辑的。实现思路:提供一些变量配置,前后端协商好变量配置规则。编辑好的内容暂且称之为“模板”,后端通过正则匹配到模板中的变量,然后进行替换,生成真正的内容。举个例子:先和前端定义好一部分变量规则:name - 姓名 .原创 2021-05-08 15:34:00 · 641 阅读 · 0 评论 -
PHP根据周期和间隔获取开始、结束时间
周期:日、周、月、年间隔:1、2、3、4、5、6......例子:间隔为“2”,周期为“周”,得出结果为:本周【本周一】的开始日期和下周【下周日】的结束日期,分别为"2021-05-03 00:00" "2021-05-16 23:59"简单的使用PHP内置函数封装了一个函数,如下:/** * 获取开始和结束时间戳(根据周期[日 周 月 年]及间隔[1 2 3 ...]) * @param $timePeriod 周期 * @param $timeIn..原创 2021-05-08 15:07:40 · 409 阅读 · 0 评论 -
使用python请求接口(可进行并发测试)
python可以支持多个线程,所以可以利用python对写好的接口进行并发测试。请求接口代码如下:#coding=utf-8import requestsimport jsonimport threadingimport timeimport uuidclass postrequests(): def __init__(self): self.url = 'https://***.*****.com/user/user/login' #请求链接原创 2021-03-05 09:05:58 · 2757 阅读 · 3 评论 -
七牛云实现视频拼接和转码
最近做的功能需要拼接视频,使用七牛云的智能多媒体服务可以满足大部分音视频处理需求,收费也还可以。需求:直播课上完,将录制的直播视频存起来,以便用户回放观看。解决方案:使用七牛云,直播课上完,将录制的直播视频,分段上传(防止文件过大上传出问题);上传后,拼接视频。由于录制的课程格式是 webm 类型,若想在ios与安卓端播放,需要转码为mp4格式,所以需要做视频转码,还好七牛都给提供了!!!【PS1:分段后其实每个文件也不算小,所以上传的时候我们用了分片上传。比较简单,可以看文档->分片原创 2020-10-30 18:07:48 · 1583 阅读 · 2 评论 -
PHP实现极光推送
消息推送一般会使用极光推送,相较于其他平台速度还可以。看极光的sdk也挺简单,记录一下,以备后用。<?phpnamespace services\push;use models\notification\NotificationPush;use yii\helpers\Json;use yii\JPush\Client;use yii\JPush\Exceptions\APIConnectionException;use yii\JPush\Exceptions\APIRequ.原创 2020-09-09 10:06:09 · 358 阅读 · 0 评论 -
HTTPS证书问题修复及免费证书获取
问题描述:将七牛云回调地址由http改为https后,报错579:x509: certificate signed by unknown authority问题解决:1.使用ssl在线检测:https://csr.chinassl.net/ssl-checker.html https://myssl.com检测后发现问题---“缺少中级证书Intermediate,请安装中级证书否则证书在部分浏览器中不受信任”2.使用证书链修复工具修复,获取证书链:https://myssl.com/c...原创 2020-08-10 16:07:13 · 1819 阅读 · 0 评论 -
PHP使用百度api实现人脸识别(免费版)
原理很简单:设备捕捉到人脸,拍照,将捕捉到的照片与人脸库中的所有基准图做对比,会找出相似度大于某值(具体数值可自己设置)的n张照片,取相似值最接近的一张即为此用户。1.首先注册个百度账号,登录百度aihttps://console.bce.baidu.com/2.在人脸识别-应用列表中建立一个应用(如图):此处的APPID 、API KEY 、SECRET KEY记下来,需要用到3.在可视化人脸库中建用户组(人脸基准图会放在用户组中):可以看下代码示例:<?ph...原创 2020-07-20 10:23:09 · 1339 阅读 · 0 评论 -
PHP二维数组按照多个字段进行排序
<?php$arr = array( array( 'a' => 1, 'b' => 3, 'c' => 1 ), array( 'a' => 6, 'b' => 1, 'c' => 1 ), array( 'a' => 5, 'b' => 3, 'c' => 1.原创 2020-07-16 21:22:45 · 433 阅读 · 0 评论 -
PHP的内存泄漏及解决方法
内存泄漏指的是在程序运行过程中申请了内存,但是在使用完成后没有及时释放的现象,对于普通运行时间较短的程序来说可能问题不会那么明显,但是对于长时间运行的程序,比如Web服务器,后台进程等就比较明显了,随着系统运行占用的内存会持续上升, 可能会因为占用内存过高而崩溃,或被系统杀掉(OOM)。PHP的内存泄漏PHP属于高级语言,语言级别并没有内存的概念,在使用过程中完全不需要主动申请或释放内...原创 2020-03-30 17:11:01 · 1228 阅读 · 0 评论 -
PHP中IP地址处理
开发中总会与ip地址打交道,就会常用两个函数.php提供了ip2long与long2ip方法对ip地址处理。原创 2017-11-30 17:40:01 · 450 阅读 · 0 评论 -
通俗易懂的理解多线程和多进程
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任...转载 2019-05-13 15:27:40 · 425 阅读 · 0 评论 -
php 7.1 使用 json_encode 函数造成浮点类型数据出现精度问题
前几天使用过程中发现了这个问题,看网上已经有人总结过。就转载过来,以便参考。在使用过程中发现浮点类型数据经过json_encode之后会出现精度问题(如0.12 变为 0.120000000000...*)。因php弱类型,可以将浮点数转为字符串来解决。可以用php strval()函数来实现。以下为博主文章:举个例子:$data = [ 'stock' =&...转载 2019-05-13 15:53:40 · 1650 阅读 · 0 评论 -
PHP多进程及简单示例
实现PHP的多进程,需要用到函数pcntl_fork,需要开启扩展 pcntl和 posix先说下其优点(摘自鸟哥的博客):1. 使用多进程, 子进程结束以后, 内核会负责回收资源 2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程. 3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚应用场景:邮件发送一直使用单进...原创 2019-06-17 16:53:11 · 420 阅读 · 0 评论 -
PHP date函数使用 +1month、-1month 的问题
经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌…比如 2018-07-31 这天执行代码:date("Y-m-d",strtotime("-1 month"))怎么输出是的2018-07-01? 上个月的最后一天不应该是2018-06-30吗...转载 2019-06-17 19:44:45 · 5723 阅读 · 0 评论 -
PHP多进程并发执行(有守护监控功能)
使用php多进程来实现邮件发送,创建了三个子进程,因为要不断的从队列中取出数据并执行发送,子进程是死循环逻辑。如果挂掉了一个,还剩了两个进程。需要做一个监控,来一直监控着进程,挂掉一个就要再起一个,需要一直保持着固定数量的进程。在上篇博文中说了用文件锁来做监控,但是并不适用于当前的情形。换了一种方法,脚本做了改进(名称:cmd_protect_monitor.php),改进如下:/**...原创 2019-07-01 16:42:16 · 1211 阅读 · 0 评论 -
php利用文件锁做守护进程脚本(可并发执行)
前几天使用php多进程创建了三个子进程。本来起了三个进程好好的。第二天来到,运维说不知道为何挂掉了一个,还剩了两个进程。这就需要做一个监控,来一直监控着进程,挂掉一个就要再起一个,需要一直保持着固定数量的进程。原来这个监控是运维用shell写的,现在就想能不能做一个通用的脚本来做监控,以后再有新的脚本,也能使用。想了下,找到一个讨巧的笨方法...如题目所说,利用文件锁。文件锁的目的是要阻...原创 2019-06-28 20:47:44 · 413 阅读 · 0 评论 -
PHP中的精度计算及显示问题
当小伙伴们刚接触到计算的时候,特别是精度高的,例如带有小数点的加减乘除,就很可能会遇到精度计算和显示错误的问题。1.做浮点型加减乘除计算的时候应该会遇到计算结果不准确,或者计算结果为 -1.3322676295502E-15 这样的值。2.浮点型的数字通过json_encode、serialize函数处理后,数值会莫名奇妙的变了,比如0.20 变为 0.1999999999...第一种...原创 2019-08-02 18:22:08 · 1292 阅读 · 0 评论 -
Windows安装Code Sniffer(+PHPStorm设置)
近期部门代码风格规范,要求统一改为PSR-2。使用Code Sniffer比较方便检查代码,电脑是Windows系统,贴出安装步骤,以供参考。第一种方式:使用Composer全局安装composer global require "squizlabs/php_codesniffer=*"生成路径:C:\Users\desktop\AppData\Roaming\Composer\...原创 2019-07-27 17:27:25 · 935 阅读 · 0 评论 -
PHP实现:压缩文件流处理,并解压
需求:将苹果支付的订单记录处理,与本地数据库对账。涉及到一个问题:请求苹果的账单,返回的是一个压缩文件,解压后才是xls文件。思路:将请求到的文件流置入一个zip文件,解压这个文件后,将文件内容转为数组处理。实现代码(写了个示例如下,数据处理也附上):苹果账单api地址:https://developer.apple.com/documentation/appstoreconnec...原创 2019-08-27 20:59:35 · 1033 阅读 · 0 评论 -
常用的算法(PHP 版)
以下是一些常见的算法,用PHP实现的,借录到此,以便学习。冒泡排序function bubble_sort($arr) { $n=count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;$j<$n;$j++) { if($arr[$j]<$arr[$i]) { ...转载 2019-09-06 16:40:31 · 193 阅读 · 0 评论 -
PHP二维数组按某一键值排序
php数组函数很强大,封装的数组操作函数也有很多。有很大一部分,日常开发中用的很少。平时遇到二维数组,想要根据其中某一个键值做排序,一般会用遍历处理。使用两个系统函数就可以很好的解决这一问题。例: 一个二维数组,要根据键值 num 做倒序排列:$arr = array( array( '测试1', 'num'=>...原创 2019-04-24 10:22:59 · 314 阅读 · 0 评论 -
PHP脚本:某天或者某段时间执行程序
前段时间做了苹果支付对账脚本,定时每天运行脚本,将数据放到数据表中以便日后使用。但...某段时间,服务器出了问题,脚本有几天没有运行,需求方想要补回来,而且顺便想要去年一整年的数据。。。因此有了三种情况:每天运行,获取两天前的数据(苹果接口能获取到最新的数据就是两天前的) 获取某天的数据 获取某一段时间的数据想了下,增加了以下代码来满足三种情况:$opt = getopt('s...原创 2019-03-26 17:06:49 · 491 阅读 · 0 评论 -
25个对php初学者非常有用的php技巧
在sdk.cn上看到一篇文章,感觉还不错,是一篇译文。原文链接:https://sdk.cn/news/2840 (文章标题:40+个对初学者非常有用的PHP技巧(一))只有25个技巧,第二部分暂时没找到。目录如下:1.不要使用相对路径,要定义一个根路径 2.不使用require,包括require_once或include_once 3.在应用程序中维护调试环境 4.通过会话...原创 2019-02-19 21:16:21 · 470 阅读 · 0 评论 -
https请求发送application/json数据
最近因工作需求要和腾讯某部对接,对方给出的接口一直无法测通,想来不应是他们的错误。用postman测试了下竟然通了。。。再回头看我的代码,没错啊。。。一直用的都是一个https请求函数啊,微信公众号接口等都可以用的啊!然后找啊找啊,想啊想啊。。。又和腾讯大牛沟通了下,原来他们的接口接收的数据是很严格的application/json格式。 大家了解下:application/json 四种常见的原创 2017-12-29 16:04:15 · 4586 阅读 · 0 评论 -
微擎:mysql数据库中的所有字段打印出来为string类型
最近碰到一个问题,数据库中的字段用var_dump打印出来后,类型为int的字段或者其他类型的字段打印之后都变为string类型。因为涉及积分变动、余额等,这些字段必须保持为int和浮点型、然后加减。经过查询发现PHP取出的mysql数据默认都会转换为string,这是PHP语言设计的原因。但是在我本地windows环境下写的测试文件,用var_dump()函数打印出来的字段类型和数据原创 2018-01-11 16:56:33 · 2174 阅读 · 0 评论 -
PHP+Redis 操作
String 类型操作list链表操作Set集合类型Zset数据类型Hash数据类型转载 2017-11-30 16:00:21 · 308 阅读 · 0 评论 -
PHP+Mysql模拟队列
好久没有更新博客了,最近偷懒了。。。。。。 最近工作上需要做一个小应用,需要实现10万用户量的接口请求,一次性foreach执行肯定是不可取,也万万取不得的(我们这服务器太渣)。然后,就需要队列的方式来干了,由于本菜鸟对Redis的了解不深,且还没用过……(主要原因)原创 2017-11-22 18:41:46 · 885 阅读 · 0 评论 -
正则表达式
在开发中,正则用到的频率想必大家都一清二楚……实在是太常见了!!!but,一直以来,本人都是随用随查(要么百度,要么查看原来的代码)。突出了一大问题!!!很严重的问题!!!那就是~我对正则还没有掌握,仅仅懂得用,真让自己去写的时候 还要查资料。。。。。。。从新学习。。。。。。简直太菜了。。。正好近来相对轻松点,那就来复习(新学习)一下正则吧!!!原创 2017-12-01 11:39:31 · 243 阅读 · 0 评论 -
PHP序列化和反序列化函数
serialize() 把变量和它们的值编码成文本形式,即产生一个可存储的值的表示unserialize() 恢复原先变量。原创 2017-11-30 20:45:55 · 2341 阅读 · 0 评论 -
linux定时任务的设置
为当前用户创建cron服务键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件并并退出 */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh*/2 * * * * 通过转载 2017-11-29 10:45:05 · 8661 阅读 · 0 评论