
php
qq_34701838
因为热爱,所以拼搏。
展开
-
php命令行进度条实现
/*** PHP命令行执行php文件的时候显示执行进度条* 调用方法:cmd_progress_bar(100,2);表示进度为2%;* @param $total 总进度数量* @param $current 当前进度数量* @param string $begin_str 开始执行提示语* @param string $finished_str 完成时候的提示语* @param int $begin_num 从哪个进度开始,默认1* @param int $screen.原创 2021-11-18 20:57:30 · 761 阅读 · 1 评论 -
web服务下游代码端限流Laravel+Redis+Apache-jmete并发测试
一、前言公司因为战略问题将公司的钉钉办公软件切换成飞书办公,需要同飞书接口一样实现接口秒级限流。我们职能组开发之前历史使用的Laravel框架和Redis缓存钉钉是分钟级限流,飞书是秒级限流,我们使用的是滑动窗口实现限流,用到的是list类型来处理。二、准备Laravel框架、Redis服务、jmete(5.4.1)并发测试工具和Java(1.8.0)运行环境。大家自行百度大巴安装教程。三、代码实现① 新建文件 laravel框架app/Http/Middleware/Slidi...原创 2021-11-18 14:42:05 · 1035 阅读 · 1 评论 -
laravel-swoole 配置 nginx反向代理
#原来的nginx+php-fpm模式配置server { listen 80; server_name laravel.fengfeng.com; index index.php; root /home/wwwroot/laravel/public; if (!-e $request_filename) { rewrite ^(.*)$ /index.php last;break; } location ~ [^/]\.原创 2021-05-28 18:22:29 · 762 阅读 · 0 评论 -
PHP + MySQL的AES加密解密(数据脱敏)
一、今年公司成立了安全部门团队,开始针对公司内部项目涉及到的数据要进行脱敏处理,要求对姓名,电话,身份证号码等用户敏感数据入库加密,一开始第一想到的在慕课网学到的AES对称散列加密,但是在实践过程中发现AES每次加密得到的密文不一致这也导致数据唯一性校验没有任何用。以及模糊搜索也会使用不了,也想base64搞下算了,但是这也安全团队那关是过不了的,经过多处查询资料发现,MySQL自带AES的加解密函数AES_DECRYPT() ,AES_ENCRYPT(),话不多说上案列。MySQL篇:加密的SQ.原创 2021-05-22 21:37:15 · 2425 阅读 · 2 评论 -
PHP Redis使用keys模糊搜索造成服务器假死(解决方案scan方法)
前言:在最近公司的项目一直访问页面卡,然后在周末时期进行一次服务器的升级,但是还是卡顿经过运维检查发现 代码运行后页面一直占用大量的链接处于CLOSE_WAIT装态,说到这我们再回顾下TCP四次挥手我们来看看TCP的四次挥手是怎么样的流程:用中文来描述下这个过程:Client:服务端大哥,我事情都干完了,准备撤了,这里对应的就是客户端发了一个FINServer:知道了,但是你等等我,我还要收收尾,这里对应的就是服务端收到FIN后回应的ACK经过上面两步之后,服务端就会处于...原创 2021-03-19 16:53:54 · 695 阅读 · 2 评论 -
PHP使用pcntl多进程任务(ps:不能应用于web服务环境,且仅支持linux下运行)
一、前言PHP的进程控制(PCNTL)支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。可惜的是,进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。PCNTL现在使用了ticks作为信号处理的回调机制,可以使用declare() 语句在程序中指定允许发生回调的位置(关于PHP中declare的使用,可以参考“PHP中结构体之declare的使用”)。需要注意的是:此扩展PCNTL在 Windows 平台上不可用。二、安装PCNTL...原创 2021-03-18 16:12:28 · 478 阅读 · 0 评论 -
借助Laravel定时任务Schedule来实现(php-fpm)伪多进程
前提:在网上导出找资料需要安装多线程扩展,还有自己调用自己的接口CUrl请求自己1秒终端等,还是觉得不能满足自己的业务需求,在思考大半天后想起Laravel可以并发执行命定时脚本也能传参数,说干就干,首先咱们需要配置好Crontab脚本,本文方法是利用Linux的crontab定时任务来协助实现Laravel调度(Mac也一样)。咱们在部署之前最好在shell跑一下:我的会报错要去php.ini文件去除禁用函数一切可用之后用命令crontab -e 添加如下内容:* * * * .原创 2021-03-18 09:05:30 · 888 阅读 · 1 评论 -
PHP任务运行内存监控
$mem = round(memory_get_peak_usage() / 1024 / 1024, 2);$log->info(‘同步完成;内存峰值:’ . $mem . ‘MB;’);原创 2021-03-16 10:35:01 · 315 阅读 · 0 评论 -
php文件锁(互斥锁)
<?php namespace App\Console\Logic; use App\Common\Common; class test { private $fileLock = 'WarehouseCreateOrder.lock';//文件锁 public function __construct() { } //执行前 public function be.原创 2021-03-15 19:51:58 · 659 阅读 · 0 评论 -
PHP curl请求方法
/** * curl请求方法 * @author zt8067 * @param $url string * @param $data array json * @param $header array CURLOPT_HTTPHEADER 设置 HTTP 头字段的数组。格式: array('Content-type: text/plain', 'Content-length: 100') * @return array ...原创 2021-03-15 15:53:14 · 332 阅读 · 0 评论 -
PHP精确计算方法
/** * PHP精确计算 主要用于货币的计算用法 * @param $n1 第一个数 * @param $symbol 计算符号 + - * / % * @param $n2 第二个数 * @param string $scale 精度 默认为小数点后两位 * @return string */ public static function PriceCalc...原创 2021-03-15 15:51:39 · 1249 阅读 · 0 评论 -
laravel 中with关联查询限定查询字段
1.关联加入select指定字段public function CustomerInfo() { return $this->belongsTo(CustomerInfo::class, 'customer_id', 'id')->select(['id', 'company_name', 'company_code', 'external_code', 'credit_total', 'customer_level', 'customer_state', 'goo原创 2021-03-09 16:05:15 · 4048 阅读 · 0 评论 -
ThinkPHP5 session配置过期时间不生效的问题
公司美国站需要加入记住我的功能,登录后长时间保持状态 'session' => [ 'id' => '', // SESSION_ID的提交变量,解决flash上传跨域 'var_session_id' => '', // SESSION 前缀 'prefix' => 'think', // 驱动方式 支持.原创 2021-03-09 11:13:41 · 2155 阅读 · 0 评论 -
phpStudy部署Laravel开发环境 nginx配置
Laravel作为单一入口的PHP框架,路由是需要web服务重定向,本人一般使用nginx搭建web服务。nginx配置所以在配置文件加入location / { try_files $uri $uri/ /index.php?$query_string; }而phpStudy每次重启,都会重置nginx配置,干脆就在错误页面加入try_files $uri $uri/ /index.php?$query_string;...原创 2021-03-09 10:12:44 · 1717 阅读 · 3 评论 -
【VMware虚拟机】docker上部署dnmp环境
DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一键安装程序。DNMP项目特点:100%开源 100%遵循Docker标准 支持多版本PHP共存,可任意切换(PHP5.4、PHP5.6、PHP7.1、PHP7.2、PHP7.3) 支持绑定任意多个域名 支持HTTPS和HTTP/2 PHP源代码、MySQL数据、配置文件、日志文件都可在Host中直接修改查看 内置完整PHP扩展安装命令 默认支持pdo_mysql、mysql原创 2021-03-05 14:16:46 · 387 阅读 · 0 评论 -
phpstorm 断点调试 详细一步到位教程
前言: 简单介绍下为什么要用断点调试,很多人说我在代码调试的部位用var_dump 或者 exit 或者print_r来进行断点,但是当项目足够大的时候这样的做法就比较费时费力,因为你断点后需要删除原有的打印,很多时候我们自己也不知道在什么地方打印, 但是安装断点调试就可以解决这些问题,越用你会越来越喜欢它,闲话少说开干。 一、断点调试PHP的环境搭建 检测本地php环境是否安装了Xdebug 在本地输出phpinfo();搜索Xdebug;如下图 如果没有安装,安...转载 2021-02-23 18:23:54 · 1768 阅读 · 1 评论 -
PHP move_uploaded_file函数 中文文件名会false解决方法
上传的文件带有中文名称会导致move_uploaded_file 返回 false,这时需要对文件进行转码了。解决方法:将文件名进行转码 $name = iconv("UTF-8", "gb2312", $files['name']);原创 2021-02-23 15:10:08 · 259 阅读 · 0 评论 -
xdebug断掉调试经常无故断开(phpstudy8.0篇)
打开Apache的所属网网站配置文件,我的使用的vhost,具体位置在我的电脑上的位置在如下目录下,此目录下即相应的虚拟主机的配置文件,打开你需要配置的虚拟主机配置文件。 因为我的项目都是ebisustore.yu_9203.conf,所以需要在ebisustore.yu_9203.conf这个配置文件加入两条指令: IPCConnectTimeout 3000 IPCCommTimeout 3000 其他的项目同理.注: 经网友在评论区提醒,直接在http原创 2020-11-30 16:59:39 · 1149 阅读 · 0 评论 -
php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法
php要连接docker中运行的mysql是不能用localhost, 127.0.0.1来连接的,因为每个docker运行容器的localhost 127.0.0.1都是自己容器本身,不是mysql容器,需要修改成母机 IP,或者是mysql容器名称 比如有如下的docker-compose.yml version: '3'services: mysql:# build: ./mysql image: daocloud.io/library/mysql:5.7.2..原创 2020-09-13 09:36:07 · 1792 阅读 · 0 评论